Software Engineering
Revision
Facilitator: Newman Blessing Dube
Software Validation vs Software
Evaluation
Software Validation Software Evaluation
Process of detecting Errors to Process of making changes to
ensure system meets software in-order to reflect
requirements customer needs as well as
market requirements
Agile vs Waterfall
Agile Waterfall
SD methodology where Traditional development
development teams work methodology which follows a
collaboratively and iteratively step-by-step approach to
to develop software solutions. development.
Iterative and incremental It’s a linear / sequential
development process
Requirements Elicitation vs
Requirements Specification
Requirements Elicitation Requirements Specification
The process of gathering and Process of writing down all the
defining the requirements for system and user requirements
a software system in the form of a document
Model Driven SE vs Data Driven
Modelling
Model Driven Data Driven
Focuses on the construction A software development
of a software model. process where data is used to
drive decisions
The model is a diagram that
specifies how the software Design and development
system should work before decisions are supported by
the code is generated. data
Natural Language Specification vs Structured
Specification
Natural Language Specification Structured Specification
It's a way of writing the Writing the requirements in
requirements in normal plain a more formal and
text, there is no defined format structured form.
by default.
It uses standard templates
Requirements written in natural to specify the
language are vague and requirements.
ambiguous.
Requirements validation overlaps with
elicitation and analysis and involves
different types of checks.
Identify and briefly discuss five types of
checks
• Validity checks
• Consistency checks
• Completeness checks
• Realism checks
• Verifiability checks
With the aid of a diagram, show the
requirements elicitation process
Requirements
Discovery
Requirements Requirements
Specification Classification and
Organization
Requirements
prioritization and Requirements elicitation is the process
negotiation of gathering and defining the
requirements for a software system
Identify the three types of application architecture
which may be used by software designers
• Application Architecture
• An application architecture describes the patterns and techniques used to
design and build an application.
• The architecture gives you a roadmap and best practices to follow when
building an application
• An architecture is essentially a blueprint for a software/application
Types of application architectures:
• 1-Tier Architecture - Standalone Application
• 2-Tier Architecture – Client Server Application
• 3-Tier Architecture – Web-Based Application
• N-Tier application - Distributed application
• Similar to the three-tier architecture but the number of application servers is
increased
The three validation techniques
used during the requirements
engineering process
• Test case generation:
• The requirements mentioned in the Software Requirements Specification document
should be testable.
• Prototyping:
• A prototype of the system is presented before the end-user
• They test and experiment with the presented model to check if it meets the their
requirements.
• Requirements reviews:
• A group of people from both the organization side and user side reviews the Software
Requirements Specifications.
• Any errors and ambiguities are flagged
Five factors to be considered when
choosing an architectural pattern
• Performance
• Security
• Safety
• Availability
• Maintainability
Four attributes of Software
• Acceptability
• Dependability and Security
• Efficiency
• Maintainability
Incremental Development Model
<<<<<<1
<<<<<<
• DamTech Ltd is a well-known IT firm that specializes in systems
development. Certain clothing shop wants to upgrade to sell their product
online to attract many possible customers. To achieve this, the shop will
have to outsource the project to an IT firm to develop a clothing ordering
system for them. They have approached DamTech Ltd to develop the system
for them.
• As a Systems Analyst Intern of DamTech Ltd, you are required to produce
documentation that contains the system requirements therein for the
proposed system. You are required to illustrate the Context data flow
diagram (also called Level 0 diagram) to show the flows that occur when
there is an interaction between the system and the actors. Entities who are
involved in the system are the Customer, Clothes Store, Clothes Supplier, and
the Sales Manager. Lastly, the list of data flows includes Customer Order,
Receipt, Clothes Order, Receipt, Clothes Order, and Management Report.
• Clearly show all in flows and out flows on your diagram.
Draw a use case diagram derived from the following scenario:
• Pair programming is an agile software development technique in which
two programmers work together at one work station. One types in code
while the other reviews each line of code as it is typed in. The person
typing is called the driver. The person reviewing the code is called the
observer. The two programmers switch roles frequently (possibly every 30
minutes or less).
• Suppose that you are asked to build a system that allows Remote Pair
Programming. That is, the system should allow the driver and the observer
to be in remote locations, but both can view a single desktop in real-time.
The driver should be able to edit code and the observer should be able to
“point” to objects on the driver’s desktop. In addition, there should be a
video chat facility to allow the programmers to communicate. The system
should allow the programmers to easily swap roles and record rationale in
the form of video chats. In addition, the driver should be able to issue the
system to backup old work.
• As an IT student who is well invested in software engineering practices,
a certain IT company has approached you to assist them their
employee management system class diagram. Their database includes
the following entities: Employee Type, Employee, HR Employee and
Finance Employee.
• When modelling the system, keep this information in mind:
• EmployeeType can have one or many IT employees and Finance Employees
• IT, HR and Finance employees belong to one employee type entity
• The following attributes must be considered:
• Employee Type: empTypeID, empCategory
• ITEmployee, HREmployee and FinanceEmployee: empID, empFName and
empLName
• Draw a system Model showing all information mentioned hereabove
PS – This is a screenshot from the class, not sure why its not showing on the video recording if you manage to watch
it. We will likely redo this question again after one or two more sessions on Class Diagrams. I also mentioned that
data types should be included as well as the correct attribute and entity names.
End