In: Computer Science
QUESTION 2
a) Do you think following a Software Development Life Cycle (SDLC) model for Software development would increase the quality of the product? Why.
b) What is the difference between SRS document and design document? What are the contents we should contain in the SRS document and design document.
QUESTION 3
a) What is a class and object? Give the diagrams and representation of class and object.
b) What is generalization? Give an example of generalization.
QUESTION 2
a)
Yes. Following a Software Development Life Cycle (SDLC) model for Software development would increase the quality of the product.
* Software Development Life Cycle (SDLC) is a process used by the software industry to design, develop and test high quality softwares. The SDLC aims to produce a high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.
* SDLC is a framework defining tasks performed at each step in the software development process.
* SDLC is a process followed for a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.
* Different stages in SDLC are,
1)
Planning
2) Defining
3) Designing
4) Building
5) Testing
6) Deployment
* The project is designed with clarity. Project
members cannot move from one stage to another until the prior stage
is completed and signed off on by the project manager. A formal
review is created at the end of each stage, which allows the
project manager to have maximum management control.
* It will be properly tested before being
installed. The installation in a project that is executed
using an SDLC has the necessary checks and balances so that it will
be tested with precision before entering the installation
stage.
* If a key project member leaves, a new member can pick
up where they left off. The SDLC gives you a
well-structured and well-documented paper trail of the entire
project that is complete with records of everything that
occurs.
* Without the SDLC, the loss of a project member can set
you back and potentially ruin the project. If paperwork is
missing or incomplete, the new project member will have to start
from the beginning and even possibly change the project to make
sense of it. With a well-designed SDLC, everything will be in order
so that a new project member can continue the process without
complications.
* The project manager can properly manage a project if
deliverables are completed on time and within the budget.
Sticking to a budget is easier with a well-organized plan in which
you can see all the timetables and costs. Project members can
submit their work to an integrated system that flags anything that
is past due. When the project manager can spend less time
micromanaging, he or she can spend more time improving efficiency
and production.
b)
SRS Document and Design Document
SRS Document
* A software requirements specification (SRS) is a document that describes what the software will do and how it will be expected to perform. It also describes the functionality the product needs to fulfill all stakeholders (business, users) needs. Specific requirements.
* SRS document is a contract between the customer and development team.
* It includes,
- Functional
- Non functional
- User
- Interface
- System
* There are three core sections of an SRS - Introduction, Overall Description, and Specific Requirements. The Introduction has five subsections - Purpose, Scope, Definitions, References, and Overview. The purpose specifies the context and intended audience of the SRS.
Design Document
* A design document is a complete high-level solution to the problem presented. It should be detailed enough that somebody who already understands the problem could go out and code the project without having to make any significant decisions.
* The purpose of design is to describe how the enhancements will be incorporated into the existing project.
* It includes,
- E-R Diagrams
- Data flow diagrams
- Data Dictionary
* A functional design document describes a software product's capabilities, appearance, and functions it needs to ultimately perform. Design documents are also referred to as functional specifications or functional specifications documents (FSDs), or functional requirements specifications.
****************************
QUESTION 3
a) Class and Object
* Classes and Objects are basic concepts of Object Oriented Programming which revolve around the real life entities.
* A class is a user defined blueprint or prototype from which objects are created. It represents the set of properties or methods that are common to all objects of one type.
* For example: in real life, a car is an object. The car has attributes, such as weight and color, and methods, such as drive and brake. A Class is like an object constructor, or a "blueprint" for creating objects.
* Every object belongs to a class and every class contains one or more related objects. That means, a Class is created once and Object is created from the same Class many time as they require. There is no memory space allocation for a Class when it is crated, while memory space is allocated for an Object when it is created.
* Suppose we have a class called "CAR". All CAR have bodies, engines etc. and these could be the attributes (properties) of our CAR class. We can also add some methods (functions) that would be common to all CAR like movement (forward and reverse), because all CAR can move . So, the idea you really want to enforce in your own mind is that the 'template' of a CAR does not change. Each Object was built from the same set of template (Class) and therefore contains the same components. All Objects share the same copy of the member functions (methods), but maintain a separate copy of the member data (Properties). For example: A Ford car and a Toyota car are both Cars, so they can be classified as belonging to the Car class. All have same movement (methods) but different in models (properties).
b)
Generalisation
* Generalization is the process of extracting shared characteristics from two or more classes, and combining them into a generalized superclass. Shared characteristics can be attributes, associations, or methods.
* Generalization may be defined as the technique of extracting the essential characteristics (these include attributes, properties and methods) from two or more subclasses and then combining them inside a generalized base class (also called a superclass). On the contrary, specialization is the reverse of generalization -- it's used to represent "type-of" relationship by creating subclasses from existing base classes.
* Notation of Generalisation
* Converting a subclass type into a superclass type is called ‘Generalization‘ because we are making the subclass to become more general and its scope is widening.
For example, if we say Car is a Vehicle, there will be no objection.