Process: Asad Ur Rehman
Process: Asad Ur Rehman
Asad Ur Rehman
Chief Technology Officer Feditec Enterprise
Process
Process is a sequence of predefined steps performed for a given purpose. The process integrate, people, tools and procedure.
Software Process can be defined as a set of activities, methods, practices, and transformations that people employ to develop and maintain software. As an organization matures, the software process becomes better defined and more consistently implemented throughout the organization.
FediteC
Process
FediteC
Software Engineering
Software Engineering process can be described using three generic phases: definition, development, and maintenance phase. Software engineering comprises a process, management techniques, technical methods, and the use of tools.
Software engineering is a layered technology. The foundation of software engineering is Process layer.
FediteC
Software Engineering
Definition phase: focuses on what (information engineering, software project planning, requirements analysis). During definition software Engineer and customer tries to find out the what question:
- Information to be processed ?
- Function & Performance are desired ? - Interfaces are to be established ? - Design constraints exist ? - Validation criteria for successful project ?
FediteC
Software Engineering
Development phase: focuses on how (software design, code generation, software testing). Software developer attempts to define how: - Data structure are to be designed - Software architecture are to be designed - Procedural details are to be implemented - Design will be translated into programming language - Testing will be performed
FediteC
Software Engineering
Maintenance phase: focuses on change
Corrective: Even with the best software quality assurance activities, it is possible that the customer will uncover defects in the software. Using corrective maintenance techniques, changes are made in the software to correct defects. Adaptive: Over the time, the original environment for which software was developed is likely to change. Adaptive maintenance results in modifications to the software to accommodate changes to the environment. Enhancement (Perfective): After using the software user recognizes additional functions that can be performed or business requirement could change. Perfective maintenance extends the functionality beyond the original requirements.
FediteC
Software Engineering
Umbrella activities are independent of any framework activity and occur throughout the process. Following are those activities;
1- Project monitoring and control 2- Software quality assurance 3- Software configuration management
FediteC
Waterfall Model
Also called Classic life cycle or linear sequential model. The process begins at analysis and continues through the maintenance until product is retired.
Each box represents a set of tasks that results in the production of each or more work products. Each new phase begins when the work products of the previous phase as completed, frozen and signed off.
FediteC
Prototyping Model
It is used when customer has a legitimate need, but is clueless about the details.
Refine design & prototype Requirement gathering & analysis
Quick Design
Build prototype
Developer is not sure about the algorithm, the adaptability of an Operating System etc.
Customer satisfied
FediteC
Prototyping Model
There are two variations of prototype approach. The prototype either built on the target environment or on a convenient platform. The approach diverges when the customer is satisfied. If prototype was built on the target platform, the prototyping progress naturally until it becomes complete product. If prototype was built on convenient platform, this prototype becomes specifications of the system. Full scale development is launched using some other (typically waterfall) approach.
FediteC
Spiral Model
Couples iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. Planning: Determines objectives, alternatives and constraints.
FediteC
Spiral Model
With each iteration around the spiral progressively more complete versions of the software are built. The spiral model enables the developer, and the customer, to understand and react to risk at each evolutionary level.
Planning Risk Analysis
Customer Evaluation
Engineering
Each loop around the spiral implies that project costs and schedules may be modified.
This creates problems in fixed-price project.
FediteC
Incremental Model
Delivers software in small but usable pieces, each piece builds on pieces already delivered. It is commonly applied as a technique to break a large programming effort into smaller, more manageable components. Each component is developed separately and integrated until all components are developed. Any life cycle can be used for the individual component development. Any life cycle model can be applied for the development of individual component. Incremental approach allows specialist to focus on one part of the life cycle to best leverage their expertise by repeatedly performing their tasks. It allows for early creation of components whose requirements are understood.
FediteC
Thanks
FediteC