You are on page 1of 4

BIT 3201 OBJECT ORIENTED ANALYSIS AND DESIGN ASSIGNMENTS

NAME: GERALD MUCHIRA KABURI REG NO: BIT/2021/72791


Assignment 1
a) Discuss other approaches to software engineering.
b) What are the benefits of OOAD over other approaches in terms of strengths and weaknesses?
ANSWERS
a) Other approaches to software engineering
i) THE STRUCTURED SYSTEMS ANALYSIS & DESIGN (SSAD)
 SASD approach is the traditional approach of software development based upon the waterfall model.
 This approach is also known as: Systems Development Life Cycle (SDLC)/ Traditional Systems
Analysis and Design/ Top-down design/ Modular programming/ Stepwise refinement
 In this approach, every problem is divided into smaller sub-problems.
 Each sub-problem is then analyzed and a solution is obtained to solve that sub-problem.
 The Solutions of overall sub-problems are then combined to solve the overall problem.
 The process of implementing a structured design is called Structured Programming.
 Each phase is designed for performing specific activity.
 Each phase must be completed before the next phase can begin with no overlap between the phases.
 Work on the next stage cannot begin until the results of the current stage are reviewed and approved as
necessary
 The output of one phase acts as the input for the next phase sequentially/ in order.
 It allows for a high degree of management control
 It does not allow user interaction with the system until integration and testing phase, when the system
is nearly complete.
 In case of an error or omission in the previous phase it is necessary to go back and modify the previous
phase.
 The phases of development of a system using SSAD include:
i) Feasibility Study
ii) Requirement Analysis and Specification
iii) System Design
iv) Implementation
v) Post-implementation Review
ii) RAPID APPLICATION DEVELOPMENT (RAD)
 It is a system development process based on prototyping without any specific planning.
 There is less attention paid to the planning and more priority is given to the development tasks.
 It targets at developing software in a short span of time.
 It focuses on input-output source and destination of the information.
 It emphasizes on delivering projects in small pieces; the larger projects are divided into a series of
smaller projects.
 The main features of RAD modeling are that it focuses on the reuse of templates, tools, processes, and
code.
Phases RAD modeling (BDPAT)
1) Business On basis of the flow of information and distribution between various
Modeling business channels, the product is designed

2) Data Modeling The information collected from business modeling is refined into a set of
data objects that are significant for the business
3) Process The data object that is declared in the data modeling phase is transformed
Modeling to achieve the information flow necessary to implement a business
function
4) Application Automated tools are used for the construction of the software, to convert
Generation process and data models into prototypes
5) Testing and As prototypes are individually tested during every iteration, the overall
Turnover testing time is reduced in RAD.

iii) JOINT APPLICATION DEVELOPMENT (JAD)


 JAD technique is applicable to the requirements gathering stage of the life cycle.
 It usually involves a series of intensive workshops between the users and the developers and it
replaces the conventional interview/questionnaire fact-finding activities.
 During the workshops the exact requirements are identified by those who have the authority to agree
them.
 The development staff, who are expert in business applications, help with technical design matters
which arise and then record the agreed requirements, often using CASE software tools.
 During JAD sessions, development staff prepare detailed models of the proposed system using the
agreed requirements.
 These models are then presented at further JAD meetings and the decision to go ahead will only made
at these meetings.
 It is important to get the right mix of people together at these workshops, most notably involving a
range of stakeholders, people who have knowledge of and commitment to the system, and others who
have the authority to agree to the way forward.

iv) PROTOTYPING
 A prototype is an incomplete system design that represents the initial working version of the system.
 Entails models (pictorial representations of the system) which prepared after detailed structured
methods or JAD sessions.
 During prototyping team members take ownership of the system and commit themselves to its
successful implementation.
 It is a screen-based development tool, with 2 main features i.e.:
i) Users should be involved in development.
ii) Users do not know what they want until they see it.
 By manipulation of a screen interface, the data and the data structures are fashioned to particular
requirements.
 Users are actively involved in the development hence can commit themselves fully to ensure
successful completion.
 Results in higher user satisfaction especially if it grows out of JAD sessions, as users are fully
involved
 Since a working model of the system is provided, the users get a better understanding of the system
being developed.
 Errors can be detected much earlier hence corrected before it is too late/ Missing functionality can be
identified easily
 Quicker user feedback is available leading to better solutions/ system developers receive quantifiable
user feedback.
 Confusing or difficult functions can be identified
 Reduces development time and costs since only necessary documentation & training occurs during
prototyping sessions.
 Exposes developers to potential future system enhancements.
 It may increase the complexity of the system as scope of the system may expand beyond original
plans.
 It can lead to insufficient/incomplete/inadequate problem analysis.
 Can cause systems to be left unfinished and/or implemented before they are ready
 It is difficult to prototype large systems because of their complexity;
 Sometimes it leads to incomplete documentation.
 Developers can become too attached to their prototypes
 If sophisticated software prototypes (4th GL or CASE Tools) are employed, the time saving benefit of
prototyping can be lost.
Types of Prototyping
i) Throw away prototype: first prototype used to define user requirements and is abandoned after
forming final system.
ii) Evolutionary/ incremental prototyping: This is repeatedly refined prototype until the final system is
formed.
v) WEB INFORMATION SYSTEMS DEVELOPMENT METHODOLOGY (WISDM)
 It is derived from Multiview, a methodology which attempts to fuse soft systems approaches with hard
approaches.
 In WISDM, a project is considered as being made up of five aspects, each of which can be treated
alone or together with the others at different stages of a project.
 These aspects are:
i) Organizational analysis – involving a range of stakeholders and concentrating on strategy
ii) Information analysis – really a specification of requirements
iii) Work design – attempting to address user satisfaction
iv) Technical design – designing the software
v) Human-computer interface (HCI) – which addresses the user interface and relates work design and
technical design
 This methodology is much more comprehensive and all-encompassing than the other design
methodologies.
 However, it remains to be seen which approach becomes the most successful.
 It is made up of the following stages/phases:
i) Requirements Analysis
ii) Conceptual Design
iii) 3Navigation Design
iv) Adaptation Design
v) Presentation Design
b) What are the benefits of OOAD over other approaches in terms of strengths and
weaknesses?
Strengths
i) The principles of encapsulation and data hiding help the developer to develop systems that cannot be
tampered by other parts of the system. In this case attributes and methods (functions) are bound
together ina class. The elements hidden in class are only accessible through an interface. Also, hidden
data does not overload the system hence efficiency in operation as opposed to structured analysis and
design.
ii) It enables reuse of code through inheritance. In this case, programmers are able to create classes from
existing classes (parent class/ bases class/ generic class/ super class) to specify a new implementation
while maintaining the same behaviours. It facilitates independent extension of original software
through public classes and interfaces. For example, one generic class (Car) can be created and then
subclasses (RaceCar and Limousine) be defined from it such that they inherit the generic class’s traits.
iii) It allows flexibility through polymorphism. In this case an object can take multiple forms. Also, one
function can be applied to several objects e.g. drive function can be used to drive a RaceCar and
Limousine objects.
iv) Easy to Understand: Since OOAD principles are fundamentally based on real world objects, it’s quite
easy for everyone on the team to quickly understand what an object name means or how a particular
behavior behaves. This makes the overall development life cycle a much smoother process.
v) Employs the aspects of modularity hence effective in problem solving. In thi case the software is to
break down into smaller problems that are solved independent of each other..
vi) Employs the aggregation technique: the relationship between objects and classes is possible
Weaknesses o of Object-Oriented Analysis and Design
i) Ill-Suited to Procedural Applications: due to the object-oriented nature of OOAD, it is quite difficult to
practice OOAD techniques within a procedural programming language, or often to apply the
techniques to non-object business logic.
ii) All the interfaces between the objects cannot be represented in a single diagram.
iii) Functionality is restricted within objects. This may pose a problem for systems which are intrinsically
procedural or computational in nature.
iv) It is too Complex for simple applications

Assignment 2
a) Draw 3 examples of UML class diagram. Include 3 attributes and 2 operations.
The Unified Modeling Language (UML) class diagram with a static structure that is used to describe the
structure of a system by showing its classes, attributes, methods (operations), and the relationships among
objects.
Example 1

You might also like