0% found this document useful (0 votes)
12 views5 pages

Software Engineering Assignment Overview

The document is an assignment for a Software Engineering course, detailing five comprehensive questions related to software development practices. It covers topics such as win-win negotiation in requirements engineering, the importance of quality in software design, levels of software testing, differences between associations and dependencies in use case diagrams, and contrasts between Structured Systems Analysis (SSA) and Object-Oriented Analysis and Design (OOAD). Each question is addressed with explanations and examples to illustrate the concepts.

Uploaded by

david bekele
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views5 pages

Software Engineering Assignment Overview

The document is an assignment for a Software Engineering course, detailing five comprehensive questions related to software development practices. It covers topics such as win-win negotiation in requirements engineering, the importance of quality in software design, levels of software testing, differences between associations and dependencies in use case diagrams, and contrasts between Structured Systems Analysis (SSA) and Object-Oriented Analysis and Design (OOAD). Each question is addressed with explanations and examples to illustrate the concepts.

Uploaded by

david bekele
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

CPU Business and Information Technology College

Department of Computer Science


Course: Software Engineering.
Weight-20% Submitted to: Lecturer Nimomsa
Assignment I Submission Date: October 24, 2018
Name- Ayele Deribe Student Id – RCS/1624/09
Briefly Explain and provide detail examples for the following comprehensive
Software Engineering questions (4 points each). Please avoid copying content
from websites or each other)
1. What does, win-win mean in the context of negotiation during requirement
engineering activity (Explain in Detail).
2. Why quality is so important in software design?
3. Explain Level of Software Testing
4. How do associations and dependencies differ from one another in use case
diagram (show in diagram well)
5. Explain the difference between SSA and OOAD (Explain with Examples).
1. What does, win-win mean in the context of negotiation during requirement
engineering activity (Explain in Detail).
In requirements engineering, once after the requirements have been elicited and elaborated to a
certain level, negotiation might be needed to satisfy different stakeholders’ expectation within a
realistic possibility. Negotiation is needed because users’/customers’ need and requirements might
conflict with each other or might not be realistic to develop a software system considering the
resources that are hand like time, money, or technical people. Without negotiation both the system
developing team and the stakeholders won’t be able to get the functionality and performance they
have sought, because they were following unrealistic expectations. But by using the win-win
approach, they all can become successful by being realistic and increasing their communication.
If the software system has requirements that are doubtful in their feasibility and is complex enough
that they might conflict with each other, it is helpful to use an iterative approach so that different
requirements can be implemented with different iteration, while assessing the risk each poses in
each iteration. Rather than using a single customer communication, it is better to follow the
following steps.
1. Identify the stakeholders involved in the system and subsystems.
2. Determine each stakeholders’ expectation- meaning their ‘Win’ condition.
3. Negotiate all the stakeholder’s ‘Win’ condition, including the software developing teams’,
into a ‘Win-Win’ condition in which all parties involved feel like their desire is met within
realistic limitations.
Communication between the end-users/customers and the software developing team should be
done frequently while developing the requirements in a detailed and clear manner. Rather than
using the previous hands-off approach, in which the software team is not involved in the
requirements engineering process, it is much better to follow the handshaking approach. In the
handshaking approach, the software team proposes solutions, the overall impact of the
requirements proposed by the customer’s representative. And the customer representative looks at
the proposed ideas and solutions by the software team and adds missing features and ask for
clarification to compromise to have the best product at the end. Handshaking, meaning
bidirectional communication, makes all parties involved to win.
Win-Win Negotiation is a smart way of communicating and working together to have the best
software product under the existing resources.

2. Why quality is so important in software design?


While designing software, caring about the quality of the software is so important because of
benefits gained and the downsides avoided that might occur because of a poor-quality software
product. High quality software product is a useful product that provides measurable value for those
who produce it and those who use it. Caring about quality in software design provides a product
that delivers the content, functions and features that the end-user desires, but as important, it
delivers in a reliable, error-free way. A high quality software satisfies the requirements that are
explicitly stated by the stakeholders and it also satisfies the implicit requirements that are expected
of high-quality software like user-friendliness and intuitiveness.
Quality software provides benefit for the software organization and the end-user community.
Because of a reliable and robust product, the software organization is benefited by doing less
maintenance, customer-support and fewer bug fixes at the end. And the end-user community is
benefited because of a powerful product that enhances the execution of the business logic in a way
that increases profitability and providing additional information that is crucial for the business.
In general, quality is essential in software design because it increases the reliability, usability,
maintainability, functionality, and portability of the software product to be developed.

3. Explain Level of Software Testing


Software testing’s goal being to uncover the errors in the software and checking its healthy
interaction with other system elements, starts from the low-level of abstraction proceeding at last
to a high-level testing. Software testing starts right after coding and during coding, checking and
testing those specific codes(components) for their functionality during unit testing. After the
individual components are tested, integration testing is done, to test the components interworking
and their integration into a single software package. Once the low level tests are done
appropriately, testing moves to a more abstract high level tests. It starts with Validation test, by
testing if the software developed actually functions, performs and behaves in accordance to the
requirements stated in the analysis phase of the development. And at last system testing is done as
a higher abstraction level, to ensure the software developed works as desired when interacting with
other elements in the system. In System testing, the software developed is tested how well it fits
with the other system elements like hardware and database to give a desired system.

4. How do associations and dependencies differ from one another in use case
diagram (show in diagram well)
An association in Use Case Diagram is shown between the actor and the use case to show that the
actor interacts with the system through the use case. An association is represented by a solid line,
with no direction, or label.

The above diagram shows the association between an actor- the customer and the use cases in an
online auction system. A specific actor is associated with a specific use case that he interacts with.
There is no need of label or direction, only a solid line is enough in a Use Case Diagram.
Dependency occurs between use cases/ functions of the system and is shown by an arrow. If the
dependency of a use case is what is required for the normal functioning of another use case, that
will always be called when the primary use case is called, then it is appropriate to use the
<<includes>> arrow to the included use case. But if the dependency of a use case is in such a way
that it is called only during exceptional cares, as an alternative, using an arrow towards the
extended use case is the appropriate standard in the Unified Modeling language.

In an auction System, before bidding the customer will be asked to accept the terms and policies
of the Auction System, so Bidding for an item, includes another use case which is to accept the
terms and policies.
When logging, there could be an alternative that the Username or password or both might be
wrong, and there might come rejection from the System to the customer who is trying to login,
since this is an exception case it, is shown under <<extend>> dependency towards the extended
case.

5. Explain the difference between SSA and OOAD (Explain with Examples).
SSA – refers to Structured Systems Analysis where as OOAD refers to – Object Oriented Analysis
and Design.
SSA – Structured Systems Analysis focuses on the processes and procedures. SSA emphasizes on
data structures. Modeling techniques used are – Data Flow Diagram, Entity-Relationship Diagram,
Flowcharts. Related to SSA, Structured System Analysis and Design(SSAD) is a software life-
cycle methodology based on the waterfall life cycle model
OOAD – Object Oriented Analysis and Design is a software engineering approach that models
and designs how real world objects interact. Object refers to any real world entity that has its own
characteristics and behaviors, this object is modeled in OOAD and the entities and concepts behind
it are utilized. For the business analyst, these would be the real-world entities that arise within the
business (invoice, product, contract etc.).
During the object-oriented analysis(OOA) phase object-modeling techniques are used to analyze
the functional requirements for a system and create models which reflect the logical design of the
system. During the object-orient Design(OOD) phase of the system, models are elaborated upon
to include implementation specific details that show how the physical design of the system will
come together. OOA focuses on what the system does (its static structure and behavior), OOD on
how the system does it (it’s run-time implementation).
Example – considering the real world object laptop pc, that laptop has attributes that can be defined
with specific values such as,
- Make=Toshiba, model= …, color=black, year=2015, RAM size=4 Gb, etc.
Each of these attributes define the “state” of the laptop. They describe the laptop as it is at some
point in time. Additionally, the laptop has certain “behaviors” such as,
- Powering on () – Shutting Down () - Charging () – Executing program ()
 In contrast with SSA, OOAD uses modeling techniques of UML (Unified modeling
Language) which includes Use-case Diagram, Class Diagram, Object Diagram, Sequence
Diagram, etc.
 With respect to the implementation phase, SSA will be using strictly procedural
programming languages like Fortran, C, etc. Whereas OOAD uses Object Oriented
programming languages that are readily available now days like Java, C++, [Link], etc.
 SSA approach is now frequently being replaced by OOAD. With reality based approach,
OOAD makes the system more maintainable and reusable

Common questions

Powered by AI

SSA employs procedure-centric modeling techniques like data flow diagrams, focusing on data structures with procedural programming languages. OOAD uses UML for modeling real-world object interactions and employs object-oriented programming languages, enhancing implementation by focusing on dynamic behavior and system interaction .

The 'handshaking' approach involves bidirectional communication between the software team and customer representatives, enabling iterative requirement refinement and solution proposals. In contrast, the 'hands-off' approach lacks involvement from the software team, leading to potential unrealistic requirements and less effective stakeholder engagement .

Software testing begins with unit testing, focusing on individual components. Next, integration testing ensures components work together. Then, validation testing confirms the software meets specified requirements. Finally, system testing checks how well the software integrates with other system elements, ensuring overall functionality .

Testing evolves from verifying individual components in unit testing to examining integrated components in integration testing. Validation testing checks if software meets specifications, culminating in system testing, which evaluates the software in a complete system context, ensuring all components work harmoniously .

Associations in a use case diagram represent interactions between an actor and a use case, shown by a solid line. Dependencies occur between use cases; an <<includes>> arrow indicates required functionalities, while an <<extend>> arrow represents exceptional scenarios or alternatives .

High-quality software benefits organizations by reducing maintenance, support, and bug fixes, ensuring efficient resource use. Users gain from reliable, user-friendly software that enhances operations and profitability by delivering robust, valuable functionality and supporting business demands effectively .

In requirements engineering, 'win-win' negotiation refers to a collaborative approach where all stakeholders' expectations are addressed within realistic constraints. It involves identifying stakeholders, determining their 'win' conditions, and negotiating these into a 'win-win' condition where everyone feels their needs are met. This fosters successful software development by improving communication and ensuring feasible requirements are met without unrealistic expectations .

Structured Systems Analysis (SSA) emphasizes process and procedural data with models like data flow diagrams, using procedural languages. Object-Oriented Analysis and Design (OOAD) focuses on real-world object interaction using UML, employing object-oriented languages like Java. OOAD's reality-based approach enhances system maintainability and reusability compared to SSA .

Iterative approaches in win-win negotiations allow continuous refinement and implementation of requirements, addressing conflicts and feasibility issues in phases. This reduces risk by iteratively incorporating feedback and ensuring that each stakeholder's 'win' conditions are realistically aligned with project constraints and goals .

Quality is crucial in software design because it ensures the product is reliable, error-free, and satisfies both explicit and implicit stakeholder requirements, such as user-friendliness. High-quality software reduces maintenance and support costs and improves user experience and business profitability by providing a robust and powerful solution .

You might also like