

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Basic process framework of software engineering with generic phases to be applied to all projects irrespective of the size and complexity.
Typology: Study notes
1 / 2
This page cannot be seen from the preview
Don't miss anything!


CHAPTER 2 SOFTWARE ENGINEERING 17
A process framework establishes the foundation for a complete software engi- neering process by identifying a small number of framework activities that are applicable to all software projects, regardless of their size or complexity. In ad- dition, the process framework encompasses a set of umbrella activities that are applicable across the entire software process. A generic process framework for software engineering encompasses five activities:
Communication. Before any technical work can commence, it is critically im- portant to communicate and collaborate with the customer (and other stake- holders). 3 The intent is to understand stakeholders’ objectives for the project and to gather requirements that help define software features and functions.
Planning. Any complicated journey can be simplified if a map exists. A software project is a complicated journey, and the planning activity creates a “map” that helps guide the team as it makes the journey. The map—called a software project plan—defi nes the software engineering work by describing the technical tasks to be conducted, the risks that are likely, the resources that will be required, the work products to be produced, and a work schedule.
Modeling. Whether you’re a landscaper, a bridge builder, an aeronautical engi- neer, a carpenter, or an architect, you work with models every day. You create a “sketch” of the thing so that you’ll understand the big picture—what it will look like architecturally, how the constituent parts fit together, and many other char- acteristics. If required, you refine the sketch into greater and greater detail in an effort to better understand the problem and how you’re going to solve it. A software engineer does the same thing by creating models to better understand software requirements and the design that will achieve those requirements.
Construction. What you design must be built. This activity combines code gen- eration (either manual or automated) and the testing that is required to uncover errors in the code.
Deployment. The software (as a complete entity or as a partially completed in- crement) is delivered to the customer who evaluates the delivered product and provides feedback based on the evaluation. These five generic framework activities can be used during the development of small, simple programs, the creation of Web applications, and for the engineering
What are the five generic process framework activities?
3 A stakeholder is anyone who has a stake in the successful outcome of the project—business managers, end users, software engineers, support people, etc. Rob Thomsett jokes that, “a stakeholder is a person holding a large and sharp stake... If you don’t look after your stake- holders, you know where the stake will end up.”
“Einstein argued that there must be a simplified explanation of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer. Much of the complexity that he must master is arbitrary complexity.”
Fred Brooks
18 CHAPTER 2 SOFTWARE ENGINEERING
of large, complex computer-based systems. The details of the software process will be quite different in each case, but the framework activities remain the same. For many software projects, framework activities are applied iteratively as a project progresses. That is, communication, planning, modeling, construction, and deployment are applied repeatedly through a number of project iterations. Each iteration produces a software increment that provides stakeholders with a subset of overall software features and functionality. As each increment is pro- duced, the software becomes more and more complete.
Software engineering process framework activities are complemented by a num- ber of umbrella activities. In general, umbrella activities are applied throughout a software project and help a software team manage and control progress, qual- ity, change, and risk. Typical umbrella activities include:
Software project tracking and control —allows the software team to assess progress against the project plan and take any necessary action to maintain the schedule.
Risk management —assesses risks that may affect the outcome of the project or the quality of the product.
Software quality assurance —defines and conducts the activities required to ensure software quality.
Technical reviews —assess software engineering work products in an effort to uncover and remove errors before they are propagated to the next activity.
Measurement —defines and collects process, project, and product measures that assist the team in delivering software that meets stakeholders’ needs; can be used in conjunction with all other framework and umbrella activities. Software configuration management —manages the effects of change throughout the software process. Reusability management —defines criteria for work product reuse (includ- ing software components) and establishes mechanisms to achieve reusable components.
Work product preparation and production —encompass the activities re- quired to create work products such as models, documents, logs, forms, and lists.
Each of these umbrella activities is discussed in detail later in this book.
Previously in this section, we noted that the software engineering process is not a rigid prescription that must be followed dogmatically by a software team. Rather, it should be agile and adaptable (to the problem, to the project, to the team,
Umbrella activities occur throughout the software process and focus primarily on project management, tracking, and control.
Software process adaptation is essential for project success.