Software Engineering class
Software Engineering class
1) Classical Waterfall Model: The classical waterfall model is the basic software
development life cycle model. It is very simple but idealistic. Earlier this model was very
popular but nowadays it is not used. But it is very important because all the other
software development life cycle models are based on the classical waterfall model.
The classical waterfall model divides the life cycle into a set of phases. This model
considers that one phase can be started after the completion of the previous phase. That
is the output of one phase will be the input to the next phase.
Thus the development process can be considered as a sequential flow in the waterfall.
Here the phases do not overlap with each other.
Different Phases:-
i) Feasibility Study: The main goal of this phase is to determine whether it would be
financially and technically feasible to develop the software.
ii) Requirements analysis and specification: The aim of the requirement analysis and
specification phase is to understand the exact requirements of the customer and
document them properly.
iii) Design: The goal of this phase is to convert the requirements acquired in the SRS into a
format that can be coded in a programming language.
iv) Coding and Unit testing: In the coding phase software design is translated into source
code using any suitable programming language. The aim of the unit testing phase is to
check whether each module is working properly or not.
v) Integration and System testing: Integration of different modules are undertaken soon
after they have been coded and unit tested. System testing consists of three different
kinds of testing activities:
Alpha testing: Alpha testing is the system testing performed by the development
team.
Beta testing: Beta testing is the system testing performed by a friendly set of
customers.
Acceptance testing: After the software has been delivered, the customer
performed acceptance testing to determine whether to accept the delivered
software or reject it.
vi) Maintenance: Maintenance is the most important phase of a software life cycle. The
effort spent on maintenance is 60% of the total effort spent to develop a full software.
2) Software Requirement Specification (SRS)
Ans: The production of the requirements stage of the software development process
is Software Requirements Specifications (SRS) (also called a requirements document). This
report lays a foundation for software engineering activities.
SRS is a formal report, which acts as a representation of software that enables the
customers to review whether it (SRS) is according to their requirements.
The SRS is a specification for a specific software product, program, or set of applications
that perform particular functions in a specific environment.
It serves several goals depending on who is writing it. First, the SRS could be written by the
client of a system. Second, the SRS could be written by a developer of the system.
In first case, SRS, is used to define the needs and expectation of the users.
In second case, SRS, is written for various purposes and serves as a contract document
between customer and developer.
Properties of a good SRS Document:-
Concise: The SRS report should be concise and at the same time, unambiguous, consistent,
and complete.
Structured: It should be well-structured. A well-structured document is simple to
understand and modify.
Black-box view: It should only define what the system should do and refrain from stating
how to do these.
Conceptual integrity: It should show conceptual integrity so that the reader can merely
understand it.
Verifiable: All requirements of the system, as documented in the SRS document, should be
correct.
Features of Good SRS Document:-
Correctness: SRS is said to be perfect if it covers all the needs that are truly expected from
the system.
Consistency: The SRS is consistent if, and only if, no subset of individual requirements
described in its conflict.
Unambiguousness: SRS is unambiguous when every fixed requirement has only one
interpretation. This suggests that each element is uniquely interpreted.
Modifiability: SRS should be made as modifiable as likely and should be capable of quickly
obtain changes to the system to some extent.
Testability: An SRS should be written in such a method that it is simple to generate test
cases and test plans from the report.
Class Diagram Object Diagram
1) It depicts the static view of a system. 1) It portrays the real-time behavior of a
system.
2) Dynamic changes are not included in the 2)Dynamic changes are captured in the
class diagram. object diagram.
3) The data values and attributes of an 3) It incorporates data values and attributes
instance are not involved here. of an entity
4) The object behaviour is manipulated in 4) Objects are the instances of a class.
the class diagram.
4) Sate Chart Diagram:- It is also known as state machine diagram or state transition
diagram, which shows the order of states underwent by an object within the system. It
captures the software system's behaviour. It models the behaviour of a class, a subsystem,
a package, and a complete system.
Behaviour State Chart Diagram:- The behavioural state machine diagram records the
behavior of an object within the system. It models the behaviour of the system.
Protocol state Chart Diagram:- It captures the behaviour of the protocol. It depicts the
change in the state of the protocol and parallel changes within the system.
7) Lines of code(LOC):- LOC count the total number of lines of source code in a project.
1. Organic:- A development project can be treated of the organic type, if the project
deals with developing a well-understood application program, the size of the
development team is reasonably small, and the team members are experienced in
developing similar methods of projects.
2. Semidetached:- A development project can be treated with semidetached type if the
development consists of a mixture of experienced and inexperienced staff.
3. Embedded:- A development project is treated to be of an embedded type, if the
software being developed is strongly coupled to complex hardware, or if the
stringent regulations on the operational method exist.
10) Gantt Chart:- It Stands for Generalized Activity Normalization Time Table (GANTT)
chart. It is a type of chart in which series of horizontal lines are present that show the
amount of work done or production completed in given period of time in relation to
amount planned for those projects. It is horizontal bar chart developed by Henry L. Gantt
(American engineer and social scientist) in 1917 as production control tool.
11) PERT Chart:- It Stands for project evaluation and review technique. It is a procedure
through which activities of a project are represented in its appropriate sequence and
timing. It is a scheduling technique used to schedule, organize and integrate tasks within a
project. PERT is basically a mechanism for management planning and control which
provides blueprint for a particular project.
12) Risk Management:- A risk is a probable problem- it might happen or it might not.
There are main two characteristics of risk.
Uncertainty- the risk may or may not happen that means there are no 100% risks.
loss – If the risk occurs in reality , undesirable result or losses will occur.
Risk management is a sequence of steps that help a software team to understand ,
analyze and manage uncertainty.
Risk management consists of
Risk Identification
Risk analysis
Risk Planning
Risk Monitoring
13)
Cohesion Coupling
Cohesion is the concept of intra-module. Coupling is the concept of inter-module.
Cohesion represents the relationship within Coupling represents the relationships
a module. between modules.
Increasing cohesion is good for software. Increasing coupling is avoided for software.
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. The DFD is also called
as a data flow graph or bubble chart.
Circle: A circle (bubble) shows a process that transforms data inputs into data outputs.
Data Flow: A curved line shows the flow of data into or out of a process or data store.
Source or Sink: Source or Sink is an external entity and acts as a source of system inputs or
sink of system outputs.
Data Store: A set of parallel lines indicates that the data is stored which can be used at a
later stage or by the other processes in a different order.
Levels in DFD:- i) 0-level DFD ii) 1-level DFD iii) 2-level DFD
Components of a ER Diagram:-
i) Entity:- An entity can be a real-world object, either animate or inanimate, that can be
merely identifiable. An entity is denoted as a rectangle in an ER diagram. For example, in a
school database, students, teachers, classes, and courses offered can be treated as entities.
All these entities have some attributes or properties that give them their identity.
ii) Attributes:- Entities are denoted utilizing their properties, known as attributes. All
attributes have values. For example, a student entity may have name, class, and age as
attributes. There exists a domain or range of values that can be assigned to attributes. For
example, a student's name cannot be a numeric value. It has to be alphabetic. A student's
age cannot be negative, etc.
iii) Relationship:-The association among entities is known as relationship. Relationships are
represented by the diamond-shaped box. For example, an employee works_at a
department, a student enrolls in a course. Here, Works_at and Enrolls are called
relationships.
16) Decision Table:- It is a brief visual representation for specifying which actions to
perform depending on given conditions. The information represented in decision tables
can also be represented as decision trees or in a programming language using if-then-else
and switch-case statements. It is also known as cause-effect table.
17)
19)
Verification Validation
It includes checking documents, design, It includes testing and validating the actual
codes and programs. product.
Verification is the static testing. Validation is the dynamic testing.
It does not include the execution of the It includes the execution of the code.
code.
20) Corrective maintenance:
Corrective maintenance of a software product may be essential either to rectify some
bugs observed while the system is in use, or to enhance the performance of the system.