Chapter 1,2

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Salman Albalushi INSTA: @SALMAN_UTASA

52J20125

CHAPTER 1
Software Engineering Code of Ethics and Practice

Public → Software engineers shall act consistently with the public interest.

Client and Employer → Software engineers shall act in a manner that is best interest of
their Client and Employer consistent.

Product → Software engineers shall ensure that their products and related
modifications meet highest professional standers possible.

Judgment → Software engineers shall maintain integrity and independence in their


professional judgment.

Management → Software engineers’ managers and leaders shall subscribe to and


promote an ethical approach to the management.

Profession → Software engineers shall advance the integrity and reputation of the
profession consistent with the public interest.

Colleagues → Software engineers shall be fair to and supportive of their colleagues.

Self → Software engineers shall participate in lifelong learning regarding the practice of
their profession and promote an ethical approach to the practice of the profession.
Salman Albalushi INSTA: @SALMAN_UTASA
52J20125

CHAPTER 2
software process -> set of activities that leads to the production of a software product.

Software Process Activities


1. Software Specification - Functionality of software and constraints must be defined.
2. Software Development - Software to meet the specification must be produced.
3. Software Validation - Validating software to ensure it does what customer wants.
4. Software Evolution - Software must evolve to meet changing customer needs.

Software Process Models


Products or deliverables are the outcomes of a process activity.
Waterfall | V-Model | Incremental Process Model | Spiral Model) | Agile Model

Waterfall Model
• Simplest model.
• All the phases of SDLC are in linear manner.
• First phase is finished then only the second phase will start.

Requirements analysis and definition: Establish System services, constraints, goals.

System and software design: Allocates the requirements to hardware or software


systems. It establishes an overall system architecture.

Implementation and unit testing: Verifying and testing that each unit meets its
specification.

Integration and system testing: Programs are integrated and tested as a complete
system.

Operation and maintenance: System is installed and put into practical use. And
correcting errors.
Salman Albalushi INSTA: @SALMAN_UTASA
52J20125

Advantages:
1. Best suited when developers already have designed and developed similar
software in the past.
2. It is useful for big projects like for 3-10 years or more.
Disadvantages:
1. Does not work smoothly if there are some issues left at the previous step.
2. Does not allow us to go back and undo or redo our actions.

V- Model

• Process executes in a sequential manner in V-shape.


• Also known as Verification and Validation model.
• Testing phase for each corresponding development stage.
• Next phase starts only after completion of the previous phase.
• V-Model provides means of testing of software at each stage in reverse manner.

Model Verification PROCESS


Business Requirement Analysis: product requirements are understood from the
customer’s perspective.

System Design: understanding and detailing the complete hardware and


communication setup for the product.

Architectural Design: Architectural specifications are understood and designed. High


Level Design (HLD).

Module Design: detailed internal design for all the system modules is specified. [Low
Level Design (LLD)].

Coding Phase - Actual coding of the system modules. Suitable programming language
is decided.
Salman Albalushi INSTA: @SALMAN_UTASA
52J20125

V- Model validation PROCESS


Acceptance Testing -- > Business Requirement Analysis
System Testing -- > System Design
Integration Testing -- > Architecture Design
Unit Testing -- > Module Design / Coding

Advantages:
1. Highly disciplined model and phases are completed one at a time.
2. Easy to manage due to the rigidity of the model.
Disadvantages:
1. Not a good model for complex and object-oriented projects.
2. Once an application is in the testing stage, it is difficult to go back and change a
functionality.

INCREMENTAL PROCESS model


• Also known as the Successive version model.
• Requirements divided into multiple standalone modules.
• Each module goes into requirements, design, implementation and testing phases.
• Every subsequent release of the module adds function to the previous release.

Advantages:
• Prepares the software fast.
• Clients have a clear idea of the project.
• Changes are easy to implement.
• Provides risk handling support.

Disadvantages:
• A good team and proper planned execution are required.
• Because of its continuous iterations the cost increases.
Salman Albalushi INSTA: @SALMAN_UTASA
52J20125

Evolutionary process model


• Evolutionary models are iterative type models.
• Allow to develop more complete versions of the software.
Following are the evolutionary process models.

Prototyping model | Spiral model | Concurrent development model

Spiral Model
• Combination of both, iterative model and one of the SDLC model.
• Risk driven process model.
• It is used for generating the software projects.
• Alternate solution is provided if the risk is found in the risk analysis.
• Combination of prototype and sequential model or waterfall model.
• In one iteration all activities are done, for large project's the output is small.

1. Objective Identification -- > Requirements gathered from costumer.


2. Alternate Evaluation -- > Identify Risk, providing solution, releasing prototype.
3. Product Development -- > Test, produce the project and release it to the costumer.
4. Next Phase Planning -- > Evaluating the output and planning for next phase.

Advantages:
• Users see the system early because of rapid prototyping.
• Design does not need to be perfect.
• It reduces high amount of risk.
• Good for large and critical projects.
• Gives strong approval and documentation control.

Disadvantages:
• The model is complex.
• Spiral may continue indefinitely.
• It can be costly to develop a software model.
• It is not used for small projects.
Salman Albalushi INSTA: @SALMAN_UTASA
52J20125

Agile Model
• Believes every project needs to be handled differently and the existing methods
need to be tailored to best suit the project requirements.
• Tasks are divided to time boxes (small time frames) to deliver specific features.
• Working software build is delivered after each iteration.
• Final build holds all the features required by the customer.

Agile Manifesto

• Individuals and interactions - Self-organization and motivation are important.


• Working software - Demo working software is considered the best means of
communication with the customer to understand their requirement.

• Customer collaboration - Continuous customer interaction is very important to get


proper product requirements.

• Responding to change - Focused on quick responses to change and continuous


development.

You might also like