Unit 3
Unit 3
ARCHITECTURAL DESIGN
Architectural Design
The architecture of a system describes its major components, their relationships
structures, and how they interact with each other.
Architectural design is also called high-level design.
Software architecture and design includes several related factors such as
Business strategy, quality attributes, human dynamics, design, and IT
environment.
The architectural design defines the relationship between major structural
elements of the software, the “design patterns” that can be used to achieve the
requirements that have been defined for the system, and the constraints that
affect the way in which architectural design patterns can be applied.
The interface design describes how the software communicates within itself,
with systems that interoperate with it, and with humans who use it. An interface
implies a flow of information (e.g., data and/or control) and a specific type of
behavior. Therefore, data and control flow diagrams provide much of the
information required for interface design.
1. Repository model
2. Client server model
3. Abstract Model
1. Repository Model
Disadvantages
1. Components must compromise on a repository data model.
2 Data evolution using such a model is difficult and expensive
3. No specific management policies
4. Difficult to distribute the data efficiently
2. Client-Server Model
● It is a shared services and servers style
● It represents how data and processing is distributed across the
various components.
● It involves a set of independent servers that provide specific services
such as printing data management,etc.
● It also involves a set of clients which call on these services.
● It also involves a network through which clients can access the
servers.
Advantages
1. Client-Server model allows straightforward distribution of data.
2. It allows effective use of networked systems and thus requires
comparably cheaper hardware than the repository model.
3. Easy to add new servers and modify existing servers.
Disadvantages
1. No involvement of shared data model and so data interchange
among components may be inefficient.
2. It leads to redundant ie. duplication or functions in each server.
3. No facility for central registration of name and services. Thus, it is
hard to locate which servers and services are available.
3. Abstract Model
● It is used to represent a layered style.
● Used to model the communication among the subsystems.
● Organizes the system into a set of abstract layers and each layer
provides a set of services.
● Allows incremental development of components at different layers.
Thus, if a layer interface change only the adjacent layer is affected
and not all other layers.
Modular Decomposition Styles
❖ Advantages
1. Supports the reuse of input-output processing.
2. Allows natural stakeholder communication.
2. Allows adding new input-output transformations easily.
4. Simple to implement compared to object model.
❖ Drawback
It is difficult to support event-based interaction through a pipeline model.
Control Styles
1. Centralized control
● Any ONE component has overall responsibility to control the starts
and stops of other components of the system.
● This controlling subsystem has the responsibility of managing the
execution of other sub-systems.
● Two common centralized control models are:
● Physical Layer − It defines the electrical, mechanical and procedural and
source to destination.
● Transport Layer −It is responsible for delivery of the entire message from
● Session Layer − It defines how to start, control and end the conversations
mpeg, ascii,html,etc
the users.
CHP 2
USER INTERFACE DESIGN
● The user analysis activity refers to the skill level and business needs
of the end users who will interact with the system.
● The requirements of each user category are gathered with an
attempt to understand the system perception from the point of view
of each category of the users.
● Once the requirements are gathered, the task analysis is conducted.
Here, the tasks that will be performed by the user to accomplish his
work are identified and described.
● The environment analysis focuses on the questions like where will
the interface be located physically and will the user perform other
tasks unrelated to the Interface.
2. Interface Design
● This phase defines a set of interface objects and actions that allow a user
to perform all the tasks that are defined in the user requirement analysis
phase.
● It is an attempt to confirm that the designed tasks meet every usability goal
defined in the user requirements
3. Implementation
● This activity normally involves prototyping and then the actual
implementation
● The output of the prototyping is used for implementation
4. Interface Validation
This focuses on:
● The ability of Ul to implement every user task correctly
● The degree to which the UI is easy to use and learn.
● User's acceptance about the interface as an efficient tool in their work.
User Analysis
● It is all about understanding the users and how they will use the system
● This information can be gathered through various source:
1. User Interviews
● Members of the software developing team meet the end users; motivate
them to tell about their needs and work culture in a consistent manner.
● This is more generally achieved by conducting one-to one meetings or
group meetings
2. Sales team input
● Members of the sales team meet the end users on a regular basis to
gather information and help the software development team.
3. Marketing team input
● Market analysis identifies how various market segments use the software
in different ways
4. Support staff input
● They talk with the users on regular basis to identify what works and what
doesn't, what users like and what they don't like, what features are easy to
use and what are difficult to understand
● Following is a list of questions that are asked during the above defined
meetings so as to better understand the users of the system:
1. Are end users trained professionals, technicians or clerks?
2. What level of basic education does the average and user have?
3. Are the users capable of learning from manuals or do they need
classroom training?
4. Are the user expert typists or feel it is hard to use the keyboard?
5. What is the age range of the users?
Usability Attributes
● Learnability is how long it takes for a new user to cope with the system
● Operating speed is how fast the system gives response to the user's
request.
● Robustness is how efficient the system is in tolerating the user errors
● Recoverability is how good the system is at recovering from user made
errors.
● Adaptability is how efficiently the system can cope with different user
environments
Steps involved in the UI Evaluation
● Step 1: UI designer creates a preliminary design of the system.
● Step 2 : After the design is completed, a first-level prototype is created.
● Step 3 : The prototype is then evaluated by the users of the system. They
provide their feedback to the designers about the efficacy of the system
interface.
● Step 4: The evaluation is done through formal methods Iike-
○ numeric response type,
○ questionnaires to get user's feedback (questionnaires can be
simples yes/no type,
○ scaled response type or percentage response type rating sheets,
○ video recording of system use and subsequent tape evaluation, etc.
then the designer studies this evaluation feedback and extracts information
from this data.
● Step 5: UI designer makes modifications based upon the user feedback
and the next level prototype is developed
This evaluation cycle continues until no further modifications are recommended
by the user i.e, until the user accepts the prototype.
CHP 3
PROJECT MANAGEMENT
● The first four activities are grouped under the project planning, whereas
the last two are performed when running the project. All these activities
are performed iteratively.
● Writing a proposal is the initial step of a software project. While writing the
project proposal it is needed to justify why the particular project is assigned
to a specific team or an organization. This proposal illustrates the project
objectives and the plan to carry out the project. The cost and schedule
estimation is also contained in the proposal.
● There may be various organizations competing to get specific project
contracts. And among several proposals only the more effective proposal
is accepted and awarded the contract to the respective organization. Many
of the organization's existence are dependent on the number of proposals
it has. That's why the proposal writing is a critical task. The proposal
writing skill is achieved by experience.
● Project planning involves first identification of the activities, milestones and
project deliverables, and then a plan is formed which is to be executed for
developing the project to produce estimated product in time and with good
quality.
● Cost estimation involves the estimation of resources which are needed to
successfully carry out the project plan
● An ongoing project activity, i.e. Project monitoring is done by the project
manager where he / she keeps examining the project progress and
compares it with planned progress and costs. Many organizations use
formal methods to do project monitoring But also by informal discussion
with project staff, a manager can understand the project progress.
● The informal monitoring predicts the possible risks, for example, because
of daily discussions with project staff the manager will know that
The project budget is low so instead of highly paid staff, less experienced
and less well-paid staff should be assigned to this project.
The appropriate experienced staff is assigned to other important projects
so there is a need to hire new staff to the project.
● The inexperienced staff are developing their skills while working on that
project and at least one project member is experienced and familiar with
the system used to develop the project. If no one is experienced there may
be chances of many simple mistakes made by the project members.
● The client and the organization who wins the contract get the report of the
project by the project manager. The Project manager is also responsible to
write short and abstract critical information from detailed project report and
use this information during the progress reviews
❖ Scheduling Problems
● Detecting the complexity of the problems and accordingly estimating the
cost of developing a solution is difficult.
● Achieved productivity is not proportional to the number of people working
on it.
● Adding new staff in the late project development moves the delivery date
further far because of the communication gap between old staff and new
staff.
● Always unforeseen events happen in the project development and these
need to be considered in the planning.
❖ Basic principles of Project Scheduling
● Project scheduling is about distributing or allocating the estimated efforts to
specific software engineering tasks across the planed project duration
● Project scheduling builds a road map for the project manager when
combined with estimation methods and risk analysis
1. Compartmentalisation The project must be categorized into a number
of manageable activities, actions and tasks by decomposing the process
into sub processes.
2. Interdependency: Few compartmentalized activities, actions, or tasks
occur in sequence where they are interdependent upon each other and
while others occur in parallel
3. Time allocation Scheduling is very important where each task must be
allocated some number of work units, defining their start date and
completion date especially in case of the inter dependencies and also state
whether work will be conducted on a full-time or part-time basis.
4. Effort allocation: The project manager must allocate a number of
people that must be present at any given point of time.
5. Effort validation: The project manager must monitor that no more than
the allocated number of people are present at any given point of time.
6. Defined responsibilities: Every task that is scheduled must be
assigned to a specific team member.
7. Defined outcomes: Every task that is scheduled must have a defined
outcome
8.Defined milestones: Each set of tasks must be associated with a
project milestone. And the milestone is said to be accomplished only when
associated tasks are reviewed for quality.
Risk Management
Risk management is one of the most important job opportunities for a project
manager.
Risk management involves predicting risks that might affect the timetable for the
project or the quality of the software being established, and then acting to
prevent these risks.
❖ Three related types of risk:
1. Project risks: Risks that influence the project schedule or resources. An
example of a development risk is the loss of an experienced designer.
Discovering a replacement designer with appropriate knowledge and experience
may take a long time and, therefore, the software design will take a long time to
complete.
2. Product risks: Risks that influence the quality or performance of the
software being created. An example of a product risk is the failure of a purchased
component to work as expected. This may affect the overall performance of the
system in such a way that it is slower than expected.
3. Business risks: Risks that affect the company expanding or procuring the
software. For example, the competitor introducing a new product is a corporate
risk. The introduction of a competitive product may mean that the underlying
assumptions made about sales of existing software products might be unduly
optimistic.
❖ The stages involved in risk management are:
1. Risk identification You need to identify possible project, produce, and
business risks.
2. Risk analysis You should assess the probability and consequences of these
risks.
3. Risk planning You should make proposals to address the risk, either by
avoiding it or else minimizing its impact on the project.
4. Risk monitoring You should regularly evaluate the risk and your plans for
probability mitigation and modify these when you learn more about the risk.
Risk Management Process
The risk management process is the iterative process that is progressing
throughout the entire project. Once you have been prepared in accordance with
an initial risk management plan, you have the ability to monitor the problem to
detect emerging dangers.
There are at least six kinds of risk that might be included in a risk checklist:
1. Technology risks: Risks that are derived from the software or hardware
technologies that will be used to develop the system.
2. People risk: Risks that are linked to the people in the development team.
3. Organizational risks: Risks that derive from the administrative environment
where third-party software is being developed.
4. Tools risks: Risks that are derived from the software tools and other support
software utilized to develop the system.
5. Requirements risks: Risks that stem from the changes to the customer
requirements and the whole process of managing the requirements
transformation.
6. Estimation risks: Risks that are derived from the administration estimates of
the resources needed to construct the system.
2. Risk Analysis
During the risk analysis process, you have to take into account each identified
risk and make a judgment about the probability and seriousness of that risk. It is
not possible to make precise, a number that represents the assessment of the
probability and significance of each risk.
2. The effects of the risk might be assessed as disastrous, serious (would cause
major delays), acceptable (delays are within allowed contingency), or
inconsequential.
3. Risk Planning
The risk planning process considers each of the key risks that have been
identified and has been developing strategies to manage such risks. For each of
the risks, you must think of actions that you might take to minimize the disruption
to the project if the problem found in the risk occurs there is no simple process
that can be followed for contingency planning.
It relies on the decision and experience of the project manager. possible risk
management policies which have been identified for the key risks shown in.
These policies are divided into three categories:
● Avoidance strategies Following these policies means that the probability
that the risk will emerge will be reduced. An example of a risk prevention
strategy is the strategy to deal with defective components.
● Minimization strategies Following these strategies means that the impact
of the risk will be reduced. An example of a risk minimization strategy is the
strategy for staff illness.
● Contingency plans Following these tactics means that you are ready for
the worst and have a strategy in place to deal with it. An example of a
contingency strategy is the strategy for organizational financial difficulties.
4.Risk Monitoring:
Risk monitoring is the whole process of checking that your beliefs about the
product, process, and business risks have not changed. You should periodically
assess each of the identified risks to decide whether that risk is becoming
probable. You should also think about whether the effects of the danger have
changed. To do this, you must look at other considerations, such as the number
of requirements to alter requests, which give you clues about the risk likelihood
and its effects.
CHAPTER 4
Quality Management
❖ Quality control
Quality of the product needs to be controlled as it needs to be consistent
throughout the procedure. So, we need to implement a product or module by
following quality procedures and standards.
An out-line structure for a quality plan. This includes:
1. Product introduction: A description of the product, its intended market, and
the quality expectations for the product.
2. Product plans: the critical release dates and responsibilities for the product
along with plans for distribution and product servicing.
3. Process descriptions: the development and service processes and
standards that should be used for product development and management.
4. Quality goals: the quality goals and plans for the product, including an
identification and justification of critical product quality attributes.
5. Risks and risk management: the key risks that might affect product quality
and the actions to be taken to address these risks
Software Measurement:
A measurement is a manifestation of the size, quantity, amount, or dimension of a
particular attribute of a product or process.
Software measurement is a characteristic of a software product or the software process.
It is an authority within software engineering. The software measurement process is
defined and governed by ISO Standard.
Software Measurement Principles:
Metrics: