Professional Documents
Culture Documents
Stqa Unit 1
Stqa Unit 1
Introduction to Software: Software Crisis, Software Processes & Characteristics, Software life cycle models,
Waterfall, Prototype, Evolutionary and Spiral Model, Requirement engineering, Use case approach, requirements
analysis using DFD, Data dictionaries & ER Diagrams, Software Design: Cohesion & Coupling
• Introduction to Software:
• Software life cycle models, Waterfall, Prototype, Evolutionary and Spiral Model,
• Requirement engineering,
• Engineering on the other hand, is all about developing products, using well-
defined, scientific principles and methods.
Introduction to Software Engineering
• Cost Management
Software Processes
The term software specifies to the set of computer programs, procedures and associated documents
(Flowcharts, manuals, etc.) that describe the program and how they are to be used.
A software process is the set of activities and associated outcome that produce a software product. Software
engineers mostly carry out these activities. These are four key process activities, which are common to all
software processes. These activities are:
• Software specifications: The functionality of the software and constraints on its operation must be defined.
• Software validation: The software must be validated to ensure that it does what the customer wants.
• Software evolution: The software must evolve to meet changing client needs.
Introduction to Software Engineering
1.A workflow model: This shows the series of activities in the process along with their inputs, outputs and dependencies. The
activities in this model perform human actions.
2. A dataflow or activity model: This represents the process as a set of activities, each of which carries out some data
transformations. It shows how the input to the process, such as a specification is converted to an output such as a design.
The activities here may be at a lower level than activities in a workflow model. They may perform transformations carried out
by people or by computers.
3. A role/action model: This means the roles of the people involved in the software process and the activities for which they
are responsible.
Introduction to Software Engineering
• The waterfall approach: This takes the above activities and produces them as separate process phases such as
requirements specification, software design, implementation, testing, and so on. After each stage is defined, it is "signed
off" and development goes onto the following stage.
• Evolutionary development: This method interleaves the activities of specification, development, and validation. An initial
system is rapidly developed from a very abstract specification.
• Formal transformation: This method is based on producing a formal mathematical system specification and transforming
this specification, using mathematical methods to a program. These transformations are 'correctness preserving.' This
means that you can be sure that the developed programs meet its specification.
• System assembly from reusable components: This method assumes the parts of the system already exist. The system
development process target on integrating these parts rather than developing them from scratch.
Introduction to Software Engineering
Software Crisis
• Size: Software is becoming more expensive and more complex with the growing complexity and expectation
out of software. For example, the code in the consumer product is doubling every couple of years.
• Quality: Many software products have poor quality, i.e., the software products defects after putting into use
due to ineffective testing technique. For example, Software testing typically finds 25 errors per 1000 lines of
code.
• Cost: Software development is costly i.e. in terms of time taken to develop and the money involved. For
example, Development of the FAA's Advanced Automation System cost over $700 per lines of code.
• Delayed Delivery: Serious schedule overruns are common. Very often the software takes longer than the
estimated time to develop, which in turn leads to cost shooting up. For example, one in four large-scale
development projects is never completed.
Introduction to Software Engineering
• SDLC is a systematic process for building software that ensures the quality
and correctness of the software built.
• SDLC consists of a detailed plan which explains how to plan, build, and
maintain specific software.
• Every phase of the SDLC life Cycle has its own process and deliverables that
feed into the next phase.
WHY SDLC?
Why SDLC?
Here, are prime reasons why SDLC is important for developing a software system.
• Increases visibility of project planning to all involved stakeholders of the development process
• Helps you to decrease project risk and project management plan overhead
SDLC Phases
• Phase 3: Design
• Phase 4: Coding
• Phase 5: Testing
• Phase 6: Installation/Deployment
• Phase 7: Maintenance
SDLC Phase 1: Requirement collection and analysis
• The requirement is the first stage in the SDLC process. It is conducted by the
senior team members with inputs from all the stakeholders and domain
experts in the industry. Planning for the quality assurance requirements and
recognization of the risks involved is also done at this stage.
• This stage gives a clearer picture of the scope of the entire project and the
anticipated issues, opportunities, and directives which triggered the project.
SDLC Phase 2: Feasibility study
• Once the requirement analysis phase is completed the next sdlc step is to define and document software
needs. This process conducted with the help of ‘Software Requirement Specification’ document also
known as ‘SRS’ document. It includes everything which should be designed and developed during the
project life cycle.
• Legal: Can we handle this project as cyber law and other regulatory framework/compliances.
• Technical: Need to check whether the current computer system can support the software
• Schedule: Decide that the project can be completed within the given schedule or not.
SDLC Phase 2: Feasibility study
• Once the requirement analysis phase is completed the next sdlc step is to define and document
software needs. This process conducted with the help of ‘Software Requirement Specification’ document
also known as ‘SRS’ document. It includes everything which should be designed and developed during
the project life cycle.
• Legal: Can we handle this project as cyber law and other regulatory framework/compliances.
• Technical: Need to check whether the current computer system can support the software
• Schedule: Decide that the project can be completed within the given schedule or not.
SDLC Phase 3: Design
In this third phase, the system and software design documents are prepared as per the requirement
specification document. This helps define overall system architecture
This design phase serves as input for the next phase of the model.
• An outline about the functionality of every module • Database tables, which include type and size
• Interface relationship and dependencies between modules • Complete detail of the interface
• Database tables identified along with their key elements • Addresses all types of dependency issues
• Once the system design phase is over, the next phase is coding. In this phase, developers
start build the entire system by writing code using the chosen programming language.
• In the coding phase, tasks are divided into units or modules and assigned to the various
developers.
• The testing team starts testing the functionality of the entire system.
Once the software testing phase is over and no bugs or errors left in
the system then the final deployment process starts.
Once the system is deployed, and customers start using the developed system,
following 3 activities occur
• Bug fixing – bugs are reported because of some scenarios which are not tested
at all
• V-Model in SDLC
• Spiral Model
SDLC Models - Waterfall Model
• A project is short
• Requirement Gathering and Analyst • Reduce the risk of incorrect user requirement
Evolutionary process model resembles the iterative enhancement model. The same phases are defined for the
waterfall model occurs here in a cyclical fashion. This model differs from the iterative enhancement model in
the sense that this does not require a useful product at the end of each cycle. In evolutionary development,
requirements are implemented by category rather than by priority.
For example, in a simple database application, one cycle might implement the graphical user Interface (GUI),
another file manipulation, another queries and another updates. All four cycles must complete before there is a
working product available. GUI allows the users to interact with the system, file manipulation allow the data to
be saved and retrieved, queries allow user to get out of the system, and updates allows users to put data into
the system.
SDLC Models - Spiral Model
Advantages
• UML is a standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems.
• UML was created by the Object Management Group (OMG) and UML 1.0 specification draft was proposed to the OMG
in January 1997.
• UML is different from the other common programming languages such as C++, Java, COBOL, etc.
• UML can be described as a general purpose visual modeling language to visualize, specify, construct, and document
software system.
• Although UML is generally used to model software systems, it is not limited within this boundary. It is also used to model
non-software systems as well. For example, the process flow in a manufacturing unit, etc.
UML-Diagrams
• It depicts the high-level functionality of a system and also tells how the user
handles a system.
Use Case Diagram: - Purpose
• It recognizes the internal as well as external factors that influence the system.
Use case diagrams are considered for high level requirement analysis of a system. When the requirements
of a system are analyzed, the functionalities are captured in use cases.
We can say that use cases are nothing but the system functionalities written in an organized manner. The
second thing which is relevant to use cases are the actors. Actors can be defined as something that interacts
with the system.
Actors can be a human user, some internal applications, or may be some external applications. When we are
planning to draw a use case diagram, we should have the following items identified.
• Actors
Actors: The users that interact with a system. An actor can be a person, an organization, or an outside
system that interacts with your application or system. They must be external objects that produce or
consume data.
System: A specific sequence of actions and interactions between actors and the system. A system may also
be referred to as a scenario.
Goals: The end result of most use cases. A successful diagram should describe the activities and variants
used to reach the goal.
Use Case Diagram: - Purpose
Actor Notation
A use case diagram depicting the Online Shopping website is given below.
Here the Web Customer actor makes use of any online shopping website to purchase online. The top-level uses
are as follows; View Items, Make Purchase, Checkout, Client Register. The View Items use case is utilized by the
customer who searches and view products. The Client Register use case allows the customer to register itself with
the website for availing gift vouchers, coupons, or getting a private sale invitation. It is to be noted that the
Checkout is an included use case, which is part of Making Purchase, and it is not available by itself.
The View Items is further extended by several use cases such as; Search Items, Browse Items, View
Recommended Items, Add to Shopping Cart, Add to Wish list. All of these extended use cases provide some
functions to customers, which allows them to search for an item. The View Items is further extended by several
use cases such as; Search Items, Browse Items, View Recommended Items, Add to Shopping Cart, Add to Wish
list. All of these extended use cases provide some functions to customers, which allows them to search for an
item.
Use Case Diagram: - Example of a Use Case Diagram
Use Case
Diagram: -
Example of a
Use Case
Diagram
Use Case Diagram: - Example of a Use Case Diagram
Use Case
Diagram: -
Example of a
Use Case
Diagram
Use Case Diagram: - Example of a Use Case Diagram
StarUML :- StarUML is a software engineering tool for system modeling using the Unified Modeling Language, as
well as Systems Modeling Language, and classical modeling notations. It is published by MKLabs and is
available on Windows, Linux and MacOS
Draw.io : Draw.io is a free open-source collaborative workspace for drawing UML diagrams. It also contains
predefined templates for drawing any UML diagram, creating wireframes, business charts, etc.
Rational Rose XDE, an "eXtended Development Environment" for software developers, integrates with Microsoft
Visual Studio .NET and Rational Application Developer. The Rational Software division of IBM, which previously
produced Rational Rose, wrote this software
Data Flow Diagrams
• A Data Flow Diagram (DFD) is a traditional visual representation of the information flows within a system. A
neat and clear DFD can depict the right amount of the system requirement graphically.
• It shows how data enters and leaves the system, what changes the information, and where data is stored.
• The objective of a DFD is to show the scope and boundaries of a system as a whole.
• It may be used as a communication tool between a system analyst and any person who plays a part in the
order that acts as a starting point for redesigning a system.
Data Flow
Diagrams -
Symbols
Data Flow Diagrams
• The DFD should maintain consistency across all the DFD levels.
• A single DFD can have maximum processes upto 9 and minimum 3 processes.
Levels of DFD
• DFD uses hierarchy to maintain transparency thus multilevel DFD’s can be created. Levels of DFD are as follows:
• 0-level DFD
• 1-level DFD:
• 2-level DFD:.
Data Flow Diagrams
0-level DFDM
Then the system is decomposed and described as a DFD with multiple bubbles..
1-level DFD
2-Level DFD
2-level DFD goes one process deeper into parts of 1-level DFD. It can be used to
project or record the specific/necessary detail about the system's functioning.
Data Flow Diagrams
Data Dictionaries
• The data dictionary hold records about other objects in the database, such
as data ownership, data relationships to other objects, and other data.
• Aliases
• Description/purpose
• Range of values
Purpose of ERD
• The database analyst gains a better understanding of the data to be contained in the database
through the step of constructing the ERD.
• Finally, the ERD is used to connect the logical structure of the database to users. In particular, the
ERD effectively communicates the logic of the database to users.
Entity-Relationship Diagrams
1. Entity
2. Attributes
1. Key attribute
2. Composite attribute
3. Single-valued attribute
4. Multi-valued attribute
Entity-Relationship Diagrams
3. Relationships
• Unary (degree1)
• Binary (degree2)
• Ternary (degree3)
Entity-Relationship Diagrams
Cardinality
Types of Cardinalities
1. One to One:
2. One to Many
3. Many to One:
4. Many to many
Coupling and Cohesion
Cohesion Coupling
Cohesion represents the relationship within a Coupling represents the relationships between
module. modules.
Increasing cohesion is good for software. Increasing coupling is avoided for software.
Cohesion represents the functional strength of Coupling represents the independence among
modules. modules.
In cohesion, the module focuses on a single In coupling, modules are connected to the other
thing. modules.
Coupling and Cohesion
GALGOTIAS UNIVERSITY
THANK YOU