You are on page 1of 35

Group 3 SOFTWARE

ENGINEERING SEMINAR
To be Presented on 12/10/23
GROUP MEMBERS

• Samuel Walbe Yise - 238354


• Wintola Ayooluwapo Samuel - 238321
• Fakeye Tomiwa - PGS 22210523210115
• Adebiyi Adesola Helen - PGS22280423442450
DESIGN AND MANAGEMENT OF LARGE-SCALE SOFTWARE
SYSTEMS

• Design and management of large-scale software systems in the software design phase is
crucial for ensuring that complex software projects are organized, maintainable, and
capable of meeting their objectives. Large-scale software systems are often
characterized by their complexity, the involvement of multiple teams, long development
timelines, and the need for scalability.
Things to consider when designing and managing large-scale
Software Systems

• Software Process Model to be used


• Requirement Analysis
• System Architecture
• Component Design
• Scalability and Performance
• Concurrency and Parallelism
• Data Management
• Security Consideration
• Resource Management
• Testing and Validation
• Documnetation
• Compliance with Standard
Software Process Models that can be used in the Design and
Management of Large-Scale Sofware Systems

• Plan driven
• Agile Method
Data Flow Oriented Design

• Data flow oriented design (DFOD) is a software design methodology that focuses on the
flow of data through a system. DFOD is often used in conjunction with structured design,
which is a broader approach to software design that emphasizes modularity and
cohesion.

• DFOD is based on the idea that a system can be modeled as a set of processes that
transform data. The data flows between the processes, and the processes are arranged
in a hierarchy. The highest level process is the top-level process, and it is responsible for
coordinating the activities of the lower level processes.
The Need for Managing Software Change

• Environment Changes
• Computer Hardware
• Competition
• Business Processes
• External Requirements (Y2k, Euro,…)
• New Standards (XML, MP3, e-Speak,…)
• All Software Demands Change
• Incremental Development
• Maintenance (Corrective, Perfective, Adaptive)
Benefits of Source Control / SCM

• Manage Constant Software Change


• Improve Debugging Productivity
• Trace Defect Reports to Correct Versions of Source Code
• Understand Change History
• Reproducibility
• Build (Compile) Software Accurately, Repeatably
• Grow Project Size
• Avoid Over-writing and Losing Changes
• Concurrent Development (Improve TTM)
• Coordinate Work with Development Policies
Versioning

• Versioning helps software development teams to work collaboratively, track changes to


code, and recover from accidental deletions or overwriting.
• Revision / Version - Single copy of a source file as it appeared at given point in its change
history (checkpoint)
• File / Element - Complete change history; all versions
• Branch - Set of successive versions; parallel to other branches
• Delta - Change from one file version to the next
Version Tree

• A version tree has branches, and each branch represents an independent line of
development.

File 0
fubar.c
Branch
1

Version
2 0

Delta
3 1
Baseline

fubar.c foo.c bar.c


Coordinating Work

Problem: Multiple people working on same fsoftware at the same time can result in lost
work.
• Solution 1: Serialize work with file locking.
• Solution 2: Work in isolation (branch) and merge.

Branching and merging scales much better.


Merging Version-Tree

0
Common
Ancestor
1

0
2
Conflicting
Merge Changes
1
Result 3
TRANSFORM CENTERED
DESIGN/TRANSFORM ANALYSIS

• Transform analysis identifies the primary functional components (modules) and the high
level inputs and outputs for these components. The first step in transform analysis is to
divide the DFD into 3 types of parts:
• Input
• Logical processing
• Output
Example: To draw the level 1 DFD, from a cursory analysis of the problem
description, we can see that there are four basic functions that the system
needs to perform – accept the input numbers from the user, validate the
numbers, calculate the root mean square of the input numbers and, then
display the result.
Transform Centered Design

• By observing the level 1 DFD, we identify the validate-input as the afferent branch and
write-output as the efferent branch. The remaining portion (i.e. compute-rms) forms the
central transform. By applying the step 2 and step 3 of transform analysis, we get the
structure chart shown below.
Structure Chart
Transaction Centered Design/Transaction Analysis

• A transaction allows the user to perform some meaningful piece of work. Transaction
analysis is useful while designing transaction processing programs. In a transaction-
driven system, one of several possible paths through the DFD is traversed depending
upon the input data item. This is in contrast to a transform centered system which is
characterized by similar processing steps for each data item.
• Transaction analysis uses this tag to divide the system into transaction modules and a
transaction-center module.
Structure Chart for the Supermarket Prize-Scheme
Real-time Software Design

• Real-time software design is a critical aspect of the software design phase, particularly for
systems that must respond to external events or data with stringent timing requirements.
Real-time systems are common in various domains, including industrial control,
automotive, aerospace, and telecommunications.
Steps in Real-time Software Design

• Requirements Analysis
• Task Identification
• Task Scheduling
• Concurrency and Parallelism
• Communication and Data Sharing
• Realtime Constrants
• Testing and Validation
• Documentation
• Security and Safety concerns
A Real-Time System Model
Sensor/Actuator Process
System Elements

• Sensor Control Process: Collects information from sensor. May buffer information
collected in response to a sensor stimulus
• Data Processor: Carries out processing of collected information and computes the
system response.
• Actuator Control Process:Generates control signals for the actuators
EMBEDDED SYSTEM DESIGN

• Embedded system design is a specialized area within software design that focuses on
creating software for embedded systems. Embedded systems are dedicated computer
systems that are designed to perform specific functions within a larger device or system.
These systems are typically resource-constrained and often operate in real-time
environments.
Steps in Embedded System Design

• Requirements Analysis
• Hardware Selection
• Software Architecture
• Real-time Consideration
• Hardware Abstraction
• Testing and Validation
• Security Consideration
• Safety Critical Design
• Documentation
Embedded Software
Design Process
USER INTERFACE DESIGN

• User interface (UI) design is a crucial aspect of the software design phase, particularly for
applications that involve human-computer interaction. It focuses on creating interfaces
that are visually appealing, user-friendly, and intuitive.
Steps in User Interface design

• Requirements analysis
• User Personas
• Wireframing and Prototyping
• Information Architecture
• Visual Design
• Consistency ad Branding
• Accessibility
• Responsive Design
• Testing and Validation
• User flows
• Scalability
• Documentation
Activities in Software User Interface Design

1 User, task, environmental analysis, and modeling: Initially, the focus is based on the
profile of users who will interact with the system, i.e. understanding, skill and knowledge,
type of user, etc, based on the user’s profile users are made into categories. From each
category requirements are gathered. Based on the requirements developer understand how
to develop the interface. Once all the requirements are gathered a detailed analysis is
conducted. In the analysis part, the tasks that the user performs to establish the goals of
the system are identified, described and elaborated. The analysis of the user environment
focuses on the physical work environment. Among the questions to be asked are:
• Where will the interface be located physically?
• Will the user be sitting, standing, or performing other tasks unrelated to the interface?
• Does the interface hardware accommodate space, light, or noise constraints?
• Are there special human factors considerations driven by environmental factors?
2. Interface Design: The goal of this phase is to define the set of interface
objects and actions i.e. Control mechanisms that enable the user to perform
desired tasks. Indicate how these control mechanisms affect the system.
Specify the action sequence of tasks and subtasks, also called a user
scenario. Indicate the state of the system when the user performs a
particular task. Always follow the three golden rules stated by Theo Mandel.
Design issues such as response time, command and action structure, error
handling, and help facilities are considered as the design model is refined.
This phase serves as the foundation for the implementation phase.
3. Interface construction and implementation: The implementation activity
begins with the creation of prototype (model) that enables usage scenarios
to be evaluated. As iterative design process continues a User Interface
toolkit that allows the creation of windows, menus, device interaction, error
messages, commands, and many other elements of an interactive
environment can be used for completing the construction of an interface.
• Interface Validation: This phase focuses on testing the interface. The
interface should be in such a way that it should be able to perform tasks
correctly and it should be able to handle a variety of tasks. It should
achieve all the user’s requirements. It should be easy to use and easy to
learn. Users should accept the interface as a useful one in their work.
Spiral Model that shows the processes fo User Interface
Design
THANK YOU FOR LISTENING

You might also like