Vous êtes sur la page 1sur 6

SOFTWARE ENGINEERING & PROJECT MANAGEMENT

Submitted To
SIR KASHIF RIZWAN

Prepared By
Asad Ahmed EP114911 Sec-A
(EVENING)

UBIT
UMAER BASHA INSTITUTE OF INFORMATION TECHNOLOGY (UNIVERSITY OF KARACHI)

CHAPTER #2

Summary
What is Software Process? A software development process, also known as a software development life-cycle (SDLC), is a structure imposed on the development of a software product. It is often considered a subset of systems development life cycle. OR A structured set of activities required to develop a software system. A system for the support of software development called computer-aided software engineering. Software engineering can be categorized into three generic phases, regardless of application. a. Area b. Project Size c. Complexity

basic phases of a software engineering process


Software engineering process has following phases: 1) Requirements Phase - Requirements Development - Requirement Management 2) Project Planning Phase - Project Planning - Risks Management 3) Design Phase - Technical Solution 4) Development Phase - Coding 5) Verification and Validation phase - Testing - Reviews 6) Reusability management 7) Implementation Phase - Product Integration 8) Maintenance Phase - Project Control The Software Engineering Institute (SEI) has developed a comprehensive model predicated on a set of software engineering capabilities that should be present as organizations reach different levels of process maturity. To determine an organizations current state of process maturity, the SEI uses an assessment that results in a five point grading scheme. The grading scheme determines compliance with a capability maturity model (CMM).

Level-1->Initial Level-2->Repeatable Level-3-> Defined Level-4-> Managed Level-5-> Optimizing SOFTWARE PROCESS MODEL Software process model is an abstraction of the actual process which is being described. Process models may include activities which are part of the software process, software products and the roles of people involved in software engineering. 1. Status Quo: represents the current state of affairs. 2. Problem Definition: Problem definition identifies the specific problem to be solved. 3. Technical Development: Technical development solves the problem through the application of some technology. 4. Solution Integration: Delivers the result. LINEAR SEQUENTIAL MODEL It is also called Classic Life Cycle or Waterfall model or Software Life Cycle suggests a systematic and sequential approach to software development that begins at the system level and progresses through analysis, design, coding, testing and support. The waterfall model derives its name due to the cascading effect from one phase. In this model each phase well defined starting and ending point, with identifiable deliveries to the next phase Analysis-->Design-->Coding-->Testing
Advantages

Simple and a desirable approach when the requirements are clear and well understood at the beginning. It provides a clear cut template for analysis, design, coding, testing and support. It is an enforced disciplined approach.
Disadvantages

It is difficult for the customers to state the requirements clearly at the beginning. There is always certain degree of natural uncertainty at beginning of each project. Difficult and costlier to change when the changes occur at later stages.

Customer can see the working version only at the end. Thus any changes suggested here are not only difficult to incorporate but also expensive. This may result in disaster if any undetected problems are precipitated to this stage. PROTOTYPING MODEL It begins with requirements gathering. Developer and Customers meet and define the overall objectives of the software, identify whatever requirements are known and identify the areas which require further definition. In many instances the client only has a general view of what is expected from the software product. In such a scenario where there is an absence of detailed information regarding the input to the system, the processing needs and the output requirements, the prototyping model may be employed. This model reflects an attempt to increase the flexibility of the development process by allowing the client to interact and experiment with a working representation of the product.
Advantages
It could serve as the first system.

The customer doesnt need to wait long as in the Linear Model. Feedback from customers are received periodically and the changes dont come as a last minute surprise.
Disadvantages
Customer could believe the prototype as the working version.

Developer also could make the implementation compromises where he could make the quick fixes to the prototype and make is as a working version. Often clients expect that a few minor changes to the prototype will more than suffice their needs. They fail to realize that no consideration was given to the overall quality of the software in the rush to develop the prototype THE RAD MODEL Rapid application development (RAD) is an incremental software development process model that emphasizes an extremely short development cycle. The RAD

model is a high-speed adaptation of the linear sequential model in which rapid development is achieved by using component-based construction. THE CONCURRENT DEVELPOMENT MODEL The concurrent development model, sometimes called concurrent engineering The concurrent process model can be represented schematically as a series of major technical activities, tasks, and their associated states. For example, the engineering activity defined for the spiral model is accomplished by invoking the following tasks: prototyping and/or analysis modeling, requirements specification, and design. COMPONENT BASED DEVELOPMENT Component-based development (CBD)) is a branch of software engineering that emphasizes the separation of concerns in respect of the wide-ranging functionality available throughout a given software system. It is a reuse-based approach to defining, implementing and composing loosely coupled independent components into systems. This practice aims to bring about an equally wide-ranging degree of benefits in both the short-term and the long-term for the software itself and for organizations that sponsor such software. FORMAL METHOD MODEL The formal methods model encompasses a set of activities that leads to formal mathematical specification of computer software. Formal methods enable a software engineer to specify, develop, and verify a computer-based system by applying a rigorous, mathematical notation. FOURTH GENERATION TECHNIQUE (4GT) The term fourth generation techniques (4GT) encompass a broad array of software tools that have one thing in common: each enables the software engineer to specify some characteristic of software at a high level. The tool then automatically generates source code based on the developer's specification. There is little debate that the higher the level at which software can be specified to a machine, the faster a program can be built. The 4GT paradigm for software engineering focuses on the ability to specify software using specialized language forms or a graphic notation that describes the problem to be solved in terms that the customer can understand.

PRODUCT AND PROCESS The product is something tangible that you get after going through a process. After doing some systems analysis work, the analyst will write a report. Doing the analysis is a process and the report is a product of that phase. Each product can be used as part of carrying out the next process. The analyst's report could be used as part of the design process. The resulting design, which is a product, is then used in writing the programs, which is another process. Thus there is no product that is not formed through a process.

THE END