0% found this document useful (0 votes)
6 views64 pages

Software Engineering

A project is a temporary endeavor aimed at creating a unique product, service, or result, involving structured tasks and phases such as feasibility, design, build, test, deploy, and close. The Unified Modeling Language (UML) is a key tool in software engineering for visualizing and documenting systems, facilitating communication among stakeholders through various diagrams. UML supports both structural and behavioral modeling, aiding in the analysis and design of complex software systems.
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)
6 views64 pages

Software Engineering

A project is a temporary endeavor aimed at creating a unique product, service, or result, involving structured tasks and phases such as feasibility, design, build, test, deploy, and close. The Unified Modeling Language (UML) is a key tool in software engineering for visualizing and documenting systems, facilitating communication among stakeholders through various diagrams. UML supports both structural and behavioral modeling, aiding in the analysis and design of complex software systems.
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
You are on page 1/ 64

Software Engineering

What is a Project?

A project is a temporary endeavor undertaken


to create a unique product, service, or result.

A project is a series of structured tasks, activities,


and deliverables that are carefully executed to
achieve a desired outcome.

Here are some examples of projects:

​ Video game development


​ Building construction
​ Natural disaster relief efforts
Some of the most common names for these phases
include:
​ Feasibility — Determines if the business case
is valid and if the organization has the
capability to deliver the intended outcome.
​ Design — Planning and analysis lead to the
design of a project’s deliverable(s).
​ Build — Construction of the deliverable(s)
with integrated quality assurance activities.
​ Test — Final quality review and inspection of
deliverables are carried out before transition,
go-live, or customer acceptance.
​ Deploy — Project deliverables are put into
use and transitional activities required for
sustainment, benefits realization, and
organizational change management are
completed.
​ Close — The project is closed, project
knowledge and artifacts are archived, project
team members are released, and contracts
are closed.

Below is a cartoon depicting the state of the project


with poor communication, inadequate
management, improper s/w process f/w followups,
etc..
How the customer explained it
how the Project leader understood it
how the analyst designed it
how they programmer wrote it
how the business consultant described it
how the project was a documented

what operations installed


how the customer was billed
how it was supported

what the customer really needed


Applications in Software Engineering
Unified Modeling Language (UML) is a versatile tool used in software engineering for

visualizing, specifying, constructing, and documenting software systems. It is widely

applied in various domains such as enterprise information systems, banking,

telecommunications, defense, and web-based services. UML is particularly useful in

modeling both software and non-software systems, including workflows in legal systems

and healthcare systems.

wikipedia.org

In software engineering, UML helps in creating class diagrams, component

diagrams, deployment diagrams, and use case diagrams to represent the static and

dynamic aspects of systems. These diagrams facilitate better understanding and

communication among stakeholders, making the development process more efficient.


UML also supports object-oriented analysis and design, which is crucial for developing complex
software systems.

UML is a notation that resulted from the unification of


1.​Object Modeling Technique OMT [James Rumbaugh 1991] - was
best for analysis and data-intensive information systems.

2.​Booch [Grady Booch 1994] - was excellent for design and


implementation. Grady Booch had worked extensively with the
Ada language, and had been a major player in the development
of Object Oriented techniques for the language. Although the
Booch method was strong, the notation was less well received
(lots of cloud shapes dominated his models - not very tidy)
3.​OOSE (Object-Oriented Software Engineering [Ivar Jacobson
1992]) - featured a model known as Use Cases. Use Cases are a
powerful technique for understanding the behaviour of an
entire system.

Why UML
As the strategic value of software increases for many companies, the industry looks for

techniques to automate the production of software and to improve quality and reduce

cost and time-to-market. These techniques include component technology, visual

programming, patterns and frameworks. Businesses also seek techniques to manage

the complexity of systems as they increase in scope and scale. In particular, they

recognize the need to solve recurring architectural problems, such as physical

distribution, concurrency, replication, security, load balancing and fault tolerance.

Additionally, the development for the World Wide Web, while making some things

simpler, has exacerbated these architectural problems. The Unified Modeling Language

(UML) was designed to respond to these needs. The primary goals in the design of the

UML summarize by Page-Jones in Fundamental Object-Oriented Design in UML as

follows:

1.​ Provide users with a ready-to-use, expressive visual modeling language so they
can develop and exchange meaningful models.
2.​ Provide extensibility and specialization mechanisms to extend the core concepts.
3.​ Be independent of particular programming languages and development
processes.
4.​ Provide a formal basis for understanding the modeling language.
5.​ Encourage the growth of the OO tools market.
6.​ Support higher-level development concepts such as collaborations, frameworks,
patterns and components.
7.​ Integrate best practices.

For whom?
A software development will have many stakeholders playing a part.
For Example:

●​ Analysts

●​ Designers

●​ Coders

●​ Testers

●​ QA

●​ The Customer

●​ Technical Authors

Types of UML Diagrams

UML diagrams can be broadly classified into two categories: Structural


Diagrams and Behavioral Diagrams.

Structural UML Diagrams


1.​ Class Diagram: Depicts the static structure of a system by showing
the system's classes, their methods, and attributes. It helps identify
relationships between different classes or objects.
2.​ Composite Structure Diagram: Represents the internal structure of
a class and its interaction points with other parts of the system.
3.​ Object Diagram: Shows instances of classes in the system and their
relationships at a particular instant.
4.​ Component Diagram: Represents how the physical components in a
system have been organized and helps in modeling implementation
details.
5.​ Deployment Diagram: Illustrates system hardware and software
components and their distribution over multiple machines.
6.​ Package Diagram: Depicts how packages and their elements have
been organized, showing dependencies between different packages.

Behavioral UML Diagrams

1.​ State Machine Diagrams: Represent the condition of the system at


finite instances of time, modeling the dynamic behavior of a class in
response to time and changing external stimuli.
2.​ Activity Diagrams: Illustrate the flow of control in a system, depicting
workflows visually.
3.​ Use Case Diagrams: Depict the functionality of a system or a part of
a system, illustrating functional requirements and interactions with
external agents.
4.​ Sequence Diagrams: Depict interaction between objects in a
sequential order, showing how and in what order the objects in a
system function.
5.​ Communication Diagrams: Show sequenced messages exchanged
between objects, focusing on objects and their relationships.
6.​ Timing Diagrams: Depict the behavior of objects over a time frame,
showing time and duration constraints.
7.​ Interaction Overview Diagrams: Model a sequence of actions,
simplifying complex interactions into simpler occurrences.

Benefits of Using UML Diagrams


●​ Standardization: Provides a standardized way of representing
system models, ensuring clear communication among developers and
stakeholders.
●​ Communication: Serves as a powerful communication tool
between stakeholders, helping convey complex ideas in an
understandable manner.
●​ Visualization: Facilitates the visualization of system components,
relationships, and processes, aiding in understanding and designing
complex systems.

●​ Documentation: Acts as effective documentation tools, providing a


structured way to document various aspects of a system.
●​ Analysis and Design: Supports both analysis and design phases of
software development, helping model requirements and transform
them into implementable designs.

Tools for Creating UML Diagrams

Several tools are available for creating UML diagrams, including:

●​ Lucidchart: A web-based diagramming tool that supports UML


diagrams and allows real-time collaboration.
●​ Draw.io: A free, web-based diagramming tool that integrates with
various cloud storage services.
●​ Visual Paradigm: Provides a comprehensive suite of tools for
software development, supporting a wide range of UML diagrams.
●​ StarUML: An open-source UML modeling tool with a user-friendly
interface.
●​ Papyrus: An open-source UML modeling tool that is part of the
Eclipse Modeling Project.
●​ PlantUML: A text-based tool that allows creating UML diagrams using
a simple and human-readable syntax.

By integrating UML into your workflow, you can create more comprehensive and communicative

system models, improving the quality and clarity of your software designs12.
What is a Class Diagram?
The class diagram is a central modeling technique that runs through nearly all

object-oriented methods. This diagram describes the types of objects in the system and

various kinds of static relationships which exist between them.

Relationships

There are three principal kinds of relationships which are important:

1.​ Association - represent relationships between instances of types (a person

works for a company, a company has a number of offices.


2.​ Inheritance - the most obvious addition to ER diagrams for use in OO. It has an

immediate correspondence to inheritance in OO design.


3.​ Aggregation - Aggregation, a form of object composition in object-oriented

design.
Class Diagram Example
The following Class Diagram example represents two classes - User and

Attachment. A user can upload multiple attachments so the two classes are

connected with an association, with 0..* as multiplicity on the Attachment side.

Package Diagram
Package diagram is UML structure diagram which shows packages and dependencies

between the packages. Model diagrams allow to show different views of a system, for

example, as multi-layered (aka multi-tiered) application - multi-layered application

model.

Component Diagram
In the Unified Modeling Language, a component diagram depicts how

components are wired together to form larger components or software systems.

It illustrates the architectures of the software components and the dependencies

between them. Those software components including run-time components,

executable components also the source code components

Deployment Diagram
The Deployment Diagram helps to model the physical aspect of an Object-Oriented

software system. It is a structure diagram which shows architecture of the system as

deployment (distribution) of software artifacts to deployment targets.


Use Case Diagram
A use-case model describes a system's functional requirements in terms of

use cases. It is a model of the system's intended functionality (use cases)

and its environment (actors). Use cases enable you to relate what you

need from a system to how the system delivers on those needs.

Think of a use-case model as a menu, much like the menu you'd find in a

restaurant. By looking at the menu, you know what's available to you, the

individual dishes as well as their prices. You also know what kind of cuisine

the restaurant serves: Italian, Mexican, Chinese, and so on. By looking at

the menu, you get an overall impression of the dining experience that
awaits you in that restaurant. The menu, in effect, "models" the restaurant's

behavior.

Because it is a very powerful planning instrument, the use-case model is

generally used in all phases of the development cycle by all team

members.

Activity Diagram
Activity diagrams are graphical representations of workflows of stepwise activities and

actions with support for choice, iteration and concurrency.


Sequence Diagram
The Sequence Diagram models the collaboration of objects based on a time sequence.

It shows how the objects interact with others in a particular scenario of a use case. With

the advanced visual modeling capability, you can create complex sequence diagram in

few clicks. Besides, some modeling tool such as Visual Paradigm can generate

sequence diagram from the flow of events which you have defined in the use case

description.
UML Terms
●​ Abstract Class - A class that will never be instantiated. An instance of this

class will never exist.

●​ Actor - An object or person that initiates events the system is involved

with.

●​ Activity: A step or action within an Activity Diagram. Represents an action

taken by the system or by an Actor.


●​ Activity Diagram: A glorified flowchart that shows the steps and decisions

and parallel operations within a process, such as an algorithm or a

business process.

●​ Aggregation - Is a part of another class. Shown with a hollow diamond

next to the containing class in diagrams.

●​ Artifacts - Documents describing the output of a step in the design

process. The description is graphic, textual, or some combination.

●​ Association - A connection between two elements of a Model. This might

represent a member variable in code, or the association between a

personnel record and the person it represents, or a relation between two

categories of workers, or any similar relationship. By default, both elements

in an Association are equal, and are aware of each other through the

Association. An Association can also be a Navigable Association, meaning

that the source end of the association is aware of the target end, but not

vice versa.

●​ Association Class: A Class that represents and adds information to the

Association between two other Classes.

●​ Attributes - Characteristics of an object which may be used to reference

other objects or save object state information.

●​ Base Class: A Class which defines Attributes and Operations that are

inherited by a Subclass via a Generalization relationship.

●​ Branch: A decision point in an Activity Diagram. Multiple Transitions

emerge from the Branch, each with a Guard Condition. When control
reaches the Branch, exactly one Guard Condition must be true; and control

follows the corresponding Transition.

●​ Class: A category of similar Objects, all described by the same Attributes

and Operations and all assignment-compatible.

●​ Class Diagram - Shows the system classes and relationships between

them.

●​ Classifier: A UML element that has Attributes and Operations. Specifically,

Actors, Classes, and Interfaces.

●​ Collaboration: A relation between two Objects in a Communication

Diagram, indicating that Messages can pass back and forth between the

Objects.

●​ Communication Diagram - A diagram that shows how operations are

done while emphasizing the roles of objects.

●​ Component: A deployable unit of code within the system.

●​ Component Diagram: A diagram that shows relations between various

Components and Interfaces.

●​ Concept - A noun or abstract idea to be included in a domain model.

●​ Construction Phase - The third phase of the Rational Unified Process

during which several iterations of functionality are built into the system

under construction. This is where the main work is done.

●​ Dependence: A relationship that indicates one Classifier knows the

Attributes and Operations of another Classifier, but isn't directly connected

to any instance of the second Classifier.


●​ Deployment Diagram: A diagram that shows relations between various

Processors.

●​ Domain -The part of the universe that the system is involved with.

●​ Elaboration Phase - The second phase of the Rational Unified Process

that allows for additional project planning including the iterations of the

construction phase.

●​ Element: Any item that appears in a Model.

●​ Encapsulation - Data in objects is private.

●​ Generalization - Indicates that one class is a subclass on another class

(superclass). A hollow arrow points to the superclass.

●​ Event: In a State Diagram, this represents a signal or event or input that

causes the system to take an action or switch States.

●​ Final State: In a State Diagram or an Activity Diagram, this indicates a

point at which the diagram completes.

●​ Fork: A point in an Activity Diagram where multiple parallel control threads

begin.

●​ Generalization: An inheritance relationship, in which a Subclass inherits

and adds to the Attributes and Operations of a Base Class.

●​ GoF - Gang of Four set of design patterns.

●​ High Cohesion - A GRASP evaluative pattern which makes sure the class

is not too complex, doing unrelated functions.

●​ Low Coupling - A GRASP evaluative pattern which measures how much

one class relies on another class or is connected to another class.


●​ Inception Phase - The first phase of the Rational Unified Process that

deals with the original conceptualization and beginning of the project.

●​ Inheritance - Subclasses inherit the attributes or characterics of their

parent (superclass) class. These attributes can be overridden in the

subclass.

●​ Initial State: In a State Diagram or an Activity Diagram, this indicates the

point at which the diagram begins.

●​ Instance - A class is used like a template to create an object. This object is

called an instance of the class. Any number of instances of the class may

be created.

●​ Interface: A Classifier that defines Attributes and Operations that form a

contract for behavior. A provider Class or Component may elect to Realize

an Interface (i.e., implement its Attributes and Operations). A client Class

or Component may then Depend upon the Interface and thus use the

provider without any details of the true Class of the provider.

●​ Iteration - A mini project section during which some small piece of

functionality is added to the project. Includes the development loop of

analysis, design and coding.

●​ Join: A point in an Activity Diagram where multiple parallel control threads

synchronize and rejoin.

●​ Member: An Attribute or an Operation within a Classifier.

●​ Merge: A point in an Activity Diagram where different control paths come

together.
●​ Message - A request from one object to another asking the object

receiving the message to do something. This is basically a call to a method

in the receiving object.

●​ Method - A function or procedure in an object.

●​ Model - The central UML artifact. Consists of various elements arranged in

a hierarchy by Packages, with relations between elements as well.

●​ Multiplicity - Shown in a domain model and indicated outside concept

boxes, it indicates object quantity relationship to quantiles of other objects.

●​ Navigability: Indicates which end of a relationship is aware of the other

end. Relationships can have bidirectional Navigability (each end is aware

of the other) or single directional Navigability (one end is aware of the

other, but not vice versa).

●​ Notation - Graphical document with rules for creating analysis and design

methods.

●​ Note: A text note added to a diagram to explain the diagram in more detail.

●​ Object - Object: In an Activity Diagram, an object that receives information

from Activities or provides information to Activities. In a Collaboration

Diagram or a Sequence Diagram, an object that participates in the

scenario depicted in the diagram. In general: one instance or example of a

given Classifier (Actor, Class, or Interface).

●​ Package - A group of UML elements that logically should be grouped

together.
●​ Package Diagram: A Class Diagram in which all of the elements are

Packages and Dependencies.

●​ Pattern - Solutions used to determine responsibility assignment for objects

to interact. It is a name for a successful solution to a well-known common

problem.

●​ Parameter: An argument to an Operation.

●​ Polymorphism - Same message, different method. Also used as a

pattern.

●​ Private: A Visibility level applied to an Attribute or an Operation, indicating

that only code for the Classifier that contains the member can access the

member.

●​ Processor: In a Deployment Diagram, this represents a computer or other

programmable device where code may be deployed.

●​ Protected: A Visibility level applied to an Attribute or an Operation,

indicating that only code for the Classifier that contains the member or for

its Subclasses can access the member.

●​ Public: A Visibility level applied to an Attribute or an Operation, indicating

that any code can access the member.

●​ Reading Direction Arrow - Indicates the direction of a relationship in a

domain model.

●​ Realization: Indicates that a Component or a Class provides a given

Interface.
●​ Role - Used in a domain model, it is an optional description about the role

of an actor.

●​ Sequence Diagram: A diagram that shows the existence of Objects over

time, and the Messages that pass between those Objects over time to

carry out some behavior. State chart diagram - A diagram that shows all

possible object states.

●​ State: In a State Diagram, this represents one state of a system or

subsystem: what it is doing at a point in time, as well as the values of its

data.

●​ State Diagram: A diagram that shows States of a system or subsystem,

Transitions between States, and the Events that cause the Transitions.

●​ Static: A modifier to an Attribute to indicate that there's only one copy of

the Attribute shared among all instances of the Classifier. A modifier to an

Operation to indicate that the Operation stands on its own and doesn't

operate on one specific instance of the Classifier.

●​ Stereotype: A modifier applied to a Model element indicating something

about it which can't normally be expressed in UML. In essence,

Stereotypes allow you to define your own "dialect" of UML.

●​ Subclass: A Class which inherits Attributes and Operations that are

defined by a Subclass via a Generalization relationship.

●​ Swimlane: An element of an Activity Diagram that indicates what parts of a

system or a domain perform particular Activities. All Activities within a


Swimlane are the responsibility of the Object, Component, or Actor

represented by the Swimlane.

●​ Time Boxing - Each iteration will have a time limit with specific goals.

●​ Transition: In an Activity Diagram, represents a flow of control from one

Activity or Branch or Merge or Fork or Join to another. In a State Diagram,

represents a change from one State to another.

●​ Transition Phase - The last phase of the Rational Unified Process during

which users are trained on using the new system and the system is made

available to users.

●​ UML - Unified Modeling Language utilizes text and graphic documents to

enhance the analysis and design of software projects by allowing more

cohesive relationships between objects.

●​ Use Case: In a Use Case Diagram, represents an action that the system

takes in response to some request from an Actor.

●​ Use Case Diagram: A diagram that shows relations between Actors and

Use Cases.

●​ Visibility: A modifier to an Attribute or Operation that indicates what code

has access to the member. Visibility levels include Public, Protected, and

Private.

●​ Workflow - A set of activities that produces some specific result.


The UML Class diagram is a graphical notation used to construct and visualize object

oriented systems. A class diagram in the Unified Modeling Language (UML) is a type of

static structure diagram that describes the structure of a system by showing the

system's:

●​ classes,

●​ their attributes,

●​ operations (or methods),

●​ and the relationships among objects.

Example

A dog has states - color, name, breed as well as behaviors -wagging, barking, eating.

An object is an instance of a class.


UML Class Notation
A class represents a concept which encapsulates state (attributes) and behavior

(operations). Each attribute has a type. Each operation has a signature. The class

name is the only mandatory information.


Class Name:

●​ The name of the class appears in the first partition.

Class Attributes:

●​ Attributes are shown in the second partition.

●​ The attribute type is shown after the colon.

●​ Attributes map onto member variables (data members) in code.

Class Operations (Methods):

●​ Operations are shown in the third partition. They are services the class provides.

●​ The return type of a method is shown after the colon at the end of the method

signature.

●​ The return type of method parameters are shown after the colon following the

parameter name. Operations map onto class methods in code

●​
Class Visibility

The +, - and # symbols before an attribute and operation name in a class denote the

visibility of the attribute and operation. ~ for default accessibility)

●​ + denotes public attributes or operations

●​ - denotes private attributes or operations

●​ # denotes protected attributes or operations

●​ ~ denotes package/default attributes or operations

Perspectives of Class Diagram


The choice of perspective depends on how far along you are in the development

process. During the formulation of a domain model, for example, you would seldom

move past the conceptual perspective. Analysis models will typically feature a mix of

conceptual and specification perspectives. Design model development will typically

start with heavy emphasis on the specification perspective, and evolve into the

implementation perspective.
A diagram can be interpreted from various perspectives:

●​ Conceptual: represents the concepts in the domain

●​ Specification: focus is on the interfaces of Abstract Data Type (ADTs) in the

software

●​ Implementation: describes how classes will implement their interfaces

The perspective affects the amount of detail to be supplied and the kinds of

relationships worth presenting. As we mentioned above, the class name is the only

mandatory information.

Relationships between classes


UML is not just about pretty pictures. If used correctly, UML precisely conveys how code

should be implemented from diagrams. If precisely interpreted, the implemented code

will correctly reflect the intent of the designer. Can you describe what each of the

relationships mean relative to your target programming language shown in the Figure

below?

If you can't yet recognize them, no problem this section is meant to help you to

understand UML class relationships. A class may be involved in one or more

relationships with other classes. A relationship can be one of the following types:
Inheritance (or Generalization):

A generalization is a taxonomic relationship between a more general classifier and a

more specific classifier. Each instance of the specific classifier is also an indirect

instance of the general classifier. Thus, the specific classifier inherits the features of the

more general classifier.

●​ Represents an "is-a" relationship.

●​ An abstract class name is shown in italics.

●​ SubClass1 and SubClass2 are specializations of SuperClass.

The figure below shows an example of inheritance hierarchy. SubClass1 and

SubClass2 are derived from SuperClass. The relationship is displayed as a solid line

with a hollow arrowhead that points from the child element to the parent element.
Association

Associations are relationships between classes in a UML Class Diagram. They are

represented by a solid line between classes. Associations are typically named using a

verb or verb phrase which reflects the real world problem domain.

Simple Association

●​ A structural link between two peer classes.

●​ There is an association between Class1 and Class2

The figure below shows an example of simple association. There is an association that

connects the <<control>> class Class1 and <<boundary>> class Class2. The

relationship is displayed as a solid line connecting the two classes.


Cardinality

Cardinality is expressed in terms of:

●​ one to one

●​ one to many

●​ many to many

Aggregation

A special type of association.

●​ It represents a "part of" relationship.

●​ Class2 is part of Class1.

●​ Many instances (denoted by the *) of Class2 can be associated with Class1.

●​ Objects of Class1 and Class2 have separate lifetimes.


Composition

●​ A special type of aggregation where parts are destroyed when the whole is

destroyed.

●​ Objects of Class2 live and die with Class1.

●​ Class2 cannot stand by itself.

The figure below shows an example of composition. The relationship is displayed as a

solid line with a filled diamond at the association end, which is connected to the class

that represents the whole or composite.

Dependency

An object of one class might use an object of another class in the code of a method. If

the object is not stored in any field, then this is modeled as a dependency relationship.

●​ A special type of association.

●​ Exists between two classes if changes to the definition of one may cause

changes to the other (but not the other way around).

●​ Class1 depends on Class2


Below shows an example of dependency. The relationship is displayed as a dashed line

with an open arrow.

Realization

Realization is a relationship between the blueprint class and the object containing its

respective implementation level details. This object is said to realize the blueprint class.

In other words, you can understand this as the relationship between the interface and

the implementing class.

For example, the Owner interface might specify methods for acquiring property and

disposing of property. The Person and Corporation classes need to implement these

methods, possibly in very different ways.

Class Attributes: properties


Methods:

Abstraction
Let us start with abstraction.
Abstraction uses symbols << xxxxxx >>
Abstract is DRY
Association
It is a typr of relationship. Not the dependency

Aggregation
A spl. Type of association. A hollow diamond
Turtle → creep

Composition
A Solid diamond

Multiplicity
Class Diagram Example: Order System
Example: GUI
Student Administration system:

The student administration system:


Student management Class diagrams describe the structure of a student
management system classes, operations and relationships among the
objects.
The main classes of student management system are student, fees, logins,
profiles, courses and exams
Classes Student management system
class diagrams:
●​ Student class: manage all the operations of student
●​ Fees class : manage all the operations of Fees.
●​ Logins class: manage all the operations of logins.
●​ Profiles class : manage all the operations of a profiles
●​ Courses class : manage all the operations of courses
●​ Exams class: manage all the operations of exams.
Classes and their attributes of student Administration system
student attributes: student_id, student_college_ID, student_name,
mobile_number, emailId, username, password
Fees attributes: fee_ID, fee_course_ID, fee_amount, total, fee payment,
free type, description
Logins attributes: login ID, login user ID, login role ID, login username,
login password, login last login
profiles attributes: profile ID profile name, profile type, profile description
course attributes: course_ID, Course_student_id course_registration,
course_name, course_type, course_year, course_description
exams attributes: exam_ID, exam_student_id, exam_HTicket_number,
exam_date, exam_name, exam_type, exam_description

Classes and their methods


Student operations: addStudent(), editStudent(), deleteStudent(),
updateStudent(), saveStudent(), Searchstudent()
Fees operations: editFees(), deleteFees(), addFees(), saveFees(),
searchFees(),UpdateFees()
courses operations: addCourses(), deleteCourses(),
searchCourses(),saveCourses(), updateCourses()
Logins operations: editLogins(),addLogins(), SaveLogins(),
updateLogins(), searchLogins(),
profiles operations: deleteProfiles(), addProfiles(), editProfiles(),
saveProfiles(), updateProfiles(), searchProfiles()
Exams operations: updateExams() editExams(), deleteExams(),
addExams(), saveExams(), searchExams()
Software Process Framework Framework
Software Process Framework Framework is a Standard way to build and deploy applications.
Software Process Framework is a foundation of complete software engineering process.
Software process framework includes all set of umbrella activities. It also includes a number of
framework activities that are applicable to all software projects.

A generic process framework encompasses five activities which are given below one by one:

1. Communication: In this activity, heavy communication with customers and other


stakeholders, requirement gathering is done.
2. Planning: In this activity, we discuss the technical related tasks, work schedule, risks,
required resources etc.
3. Modeling: Modelling is about building representations of things in the ‘real world’.In
modelling activity, a product’s model is created in order to better understand and requirements.
4. Construction: In software engineering, construction is the application of a set of procedures
that are needed to assemble the product. In this activity, we generate the code and test the
product in order to make a better product.
5. Deployment: In this activity, a complete or in-complete products or software are represented
to the customers to evaluate and give feedback. On the basis of their feedback we modify the
products to supply better products.

Umbrella activities include:


• Riskmanagement
• Software quality assurance(SQA)
• Software configuration management(SCM)
• Measurement
• Formal technical reviews(FTR)

Umbrella Activities are as follows:


1. Software Project Tracking and Control
2. Formal Technical Reviews
3. Software Quality Assurance of software development.
4. Software Configuration Management
5. Document Preparation and Production
6. Re-usability Management
7. Measurement and Metrics
8. Risk Management
ISO 9000
ISO (International Standards Organization) is a group or consortium of 63
countries established to plan and foster standardization. ISO declared its
9000 series of standards in 1987.
●​ It serves as a reference for the contract between independent parties.
●​ This standard determines the guidelines for maintaining a quality
system. This standard mainly addresses operational methods and
organizational methods such as responsibilities, reporting, etc.
●​ This defines a set of guidelines for the production process and is not
directly concerned about the product itself.

The ISO 9000 series of standards is based on the assumption that if a


proper stage is followed for production, then good quality products are
bound to follow automatically. The types of industries to which the various
ISO standards apply are as follows.

1. ISO 9001: This standard applies to the organizations engaged in design,


development, production, and servicing of goods. This is the standard
that applies to most software development organizations.
2. ISO 9002: This standard applies to those organizations which do not
design products but are only involved in the production. Examples of these
category industries contain steel and car manufacturing industries that buy
the product and plant designs from external sources and are engaged in
only manufacturing those products. Therefore, ISO 9002 does not apply to
software development organizations.

3. ISO 9003: This standard applies to organizations that are involved only
in the installation and testing of the products. For example, Gas companies.

Why ISO Certification required by the Software Industry?

There are several reasons why software industry must get an ISO
certification. Some of reasons are as follows:

1.​ It helps in designing high-quality repeatable software products.


2.​ It emphasizes the need for proper documentation.
3.​ It facilitates development of optimal processes and totally quality
measurements.

Features of ISO 9001 Requirements:


Document control –
All documents concerned with the development of a software product
should be properly managed and controlled.
Planning –
Proper plans should be prepared and monitored.
Review –
For effectiveness and correctness all important documents across all
phases should be independently checked and reviewed .
Testing –
The product should be tested against specification.
Organizational Aspects –
Various organizational aspects should be addressed e.g., management
reporting of the quality team.
Advantages of ISO 9000 Certification :

➢​Each procedure and work instruction must be documented and thus


becomes a springboard for continuous improvement.
➢​Employees morale is increased as they’re asked to require control of
their
➢​processes and document their work processes
➢​Better products and services result from continuous improvement
➢​process.
➢​Increased employee participation, involvement, awareness and
➢​systematic employee training reduces problems.

CMM(The Capability Maturity Model ) Process


Patterns

CMM is similar to ISO 9001, one of the ISO 9000 series of standards
specified by the International Organization for Standardization. The ISO
9000 standards specify an effective quality system for manufacturing and
service industries; ISO 9001 deals specifically with software development
and maintenance.

CMM is more detailed and specific than ISO 9001

The main difference between CMM and ISO 9001 lies in their respective
purposes: ISO 9001 specifies a minimal acceptable quality level for
software processes, while CMM establishes a framework for continuous
process improvement. It is more explicit than the ISO standard in defining
the means to be employed to that end.

The Software Engineering Institute (SEI) Capability Maturity Model (CMM)


specifies an increasing series of levels of a software development
organization. The higher the level, the better the software development
process, hence reaching each level is an expensive and time-consuming
process.

CMM's five levels of maturity for software processes


There are five levels to the CMM development process. They are the
following:

1.​ Initial (Level 1). At the initial level, processes are disorganized, ad
hoc and even chaotic. Success likely depends on individual efforts
and is not considered to be repeatable. Defined processes and
standard practices that exist are abandoned during a crisis. Success

of the organization majorly depends on an individual effort,

talent.This is because processes are not sufficiently defined and

documented to enable them to be replicated.


2.​ Repeatable (Level 2). track cost, schedule, and functionality. The
process is in place to repeat the earlier successes on projects with

similar applications. At the repeatable level, requisite processes are

established, defined and documented. As a result, basic project


management techniques are established, and successes in key
process areas are able to be repeated.
3.​ Defined (Level 3). At the defined level, an organization develops its
own standard software development process. These defined
processes enable greater attention to documentation,
standardization and integration. In thi level, we have documented,
standardized, and integrated into a standard software process for

the entire organization and all projects across the organization use

an approved

4.​ Managed (Level 4). At the managed level, an organization monitors


and controls its own processes through data collection and analysis.
organization set a quantitative quality goal for both software

process and software maintenance

5.​ Optimizing (Level 5). At the optimization level, processes are


constantly improved through monitoring feedback from processes
and introducing innovative processes and functionality. At this level,
changes to the process are to improve the process performance and

at the same time maintaining statistical probability to achieve the

established quantitative process-improvement objectives.

One criticism of CMM is that it is too process-oriented and not goal-oriented


enough. CMMI is designed to make it easier for businesses to apply the
methodology to specific uses than with CMM.
Process Models

In a typical s/w industry, we follow a process to achieve the goals. Goals


are the expected end result within a time frame, budget and quality.

Waterfall Model

It's often cited as the first software development methodology.

Dr. Winston W. Royce at the Lockheed Software Technology Center


introduced this concept in 1970 based on his experience developing software
for satellites. The model is also used more generally as a high-level project
management methodology for complicated, multifaceted projects.

The Waterfall model is a linear, sequential approach to the software


development lifecycle (SDLC) that's popular in software engineering and
product development.

The Waterfall model uses a logical progression of SDLC steps for a project,
similar to the direction water flows over the edge of a cliff. It sets distinct
endpoints or goals for each phase of the development process. Those
endpoints or goals can't be revisited after their completion.

Who uses the Waterfall model?

Project teams and project managers use the Waterfall model to achieve goals
based on the needs of their business. The model is used in many different
project management contexts, such as in construction, manufacturing, IT and
software development.

In the Waterfall methodology, each step is dependent on the output of the


previous step. There's a linear progression to the way these projects unfold.

For example, in construction, these three general steps are usually followed:

1.​ A building's physical design is created before any construction


begins.
2.​ The foundation is poured before the skeleton of a building is erected.
3.​ The skeleton of the building is completed before the walls are built.

The Waterfall model doesn't include a project's end users or clients as much
as other development methodologies. Users are consulted during the initial
stages of gathering and defining requirements, and client feedback is
incorporated after that. By leaving the client out of the main part of the
Waterfall process, the development team moves quickly through the phases of
a project.

This methodology is good for teams and projects that want to develop
a project according to fixed or unchanging requirements set forth at
the beginning of the project. Waterfall projects have a high degree of
process definition with little or no output variability. Waterfall is also a
good choice if the project has cost or time constraints.
Projects based on the Waterfall method are well defined, are predictable and
have specific documentation. They have the following characteristics: fixed
requirements, ample resources, an established timeline and well-understood
technology. They usually aren't likely to require significant changes.

Waterfall aims to achieve its goals on the first try. So, in software development
processes, if an application must work out of the box immediately at the risk of
losing customers or some other serious issue, Waterfall is a suitable method.

Phases of the Waterfall model

When used for complex projects, such as software development, the Waterfall
development methodology has seven stages:

1.​ Requirements. Potential project requirements, deadlines and


guidelines for the project are analyzed and placed into a formal
requirements document, also called a functional specification. This
first phase of development defines and plans the project without
mentioning specific processes. It also defines the project scope,
team members, stakeholders, process for requirements gathering,
reporting of project progress, use of aids such as templates and
workflow diagrams, and an overall roadmap of the project.
2.​ Analysis. The system specifications are analyzed to generate
product models and business logic to guide production. This is also
when financial and technical resources are audited for feasibility.
3.​ Design. A design specification document is created to outline
technical requirements during the design phase. These include the
programming language, hardware, data sources, architecture and
services.
4.​ Coding and implementation. The source code is developed using
the models, logic and requirement specifications designated in the
previous phases. Typically, the system is coded in smaller
components, or units, before being put together.
5.​ Testing. This is when quality assurance and unit, system and beta
tests identify issues that must be resolved. This forces a repeat of
the coding stage for debugging. If the system passes integration and
testing, the Waterfall process continues forward.
6.​ Operation and deployment. The product or application is deemed
fully functional and is deployed to a live environment.
7.​ Maintenance. Corrective, adaptive and perfective maintenance is
carried out indefinitely to improve, update and enhance the product
and its functionality. This could include releasing patch updates and
new versions.

Before moving to the next phase in the Waterfall process, there's usually a
review and sign-off to ensure all defined goals have been met. For example,
developers ensure each unit of technology is properly integrated in the
implementation phase before moving to the testing phase.

Advantages of the Waterfall model

The Agile methodology is often used in place of the Waterfall model. However,
there are advantages to the Waterfall vs. Agile approaches, such as the
following:

●​ The Waterfall approach lets large or changing teams move toward a


common goal that's been defined in the requirements stage.
●​ It forces a structured, disciplined approach.
●​ It simplifies understanding, following and arranging tasks.
●​ It facilitates departmentalization and managerial control based on the
schedule or deadlines.
●​ It reinforces good coding habits to define before implementing design
and then code.
●​ It facilitates early system design and specification changes.
●​ It clearly defines milestones and deadlines.

Disadvantages of the Waterfall model

Disadvantages of the Waterfall model typically center around the risk


associated with a lack of revision and flexibility. Specific issues include the
following:

●​ Waterfall design isn't adaptive; when a flaw is found, the entire


process often needs to start over.
●​ The methodology doesn't incorporate midprocess user or client
feedback and makes changes based on results.
●​ The Waterfall model delays testing until the end of the development
lifecycle.
●​ It doesn't consider error correction.
●​ It doesn't handle requests for changes, scope adjustments and
updates well.
●​ Waterfall doesn't let processes overlap for simultaneous work on
different phases, reducing overall efficiency.
●​ No working product is available until the later stages of the project
lifecycle.
●​ Waterfall isn't ideal for complex, high-risk ongoing projects.

Waterfall model software and tools

Gantt charts are a common management tool for Waterfall projects. These
charts enable easy visualization of sequential phases, letting project
managers map dependencies and subtasks for each phase of the process.
They also provide a clear view of timelines and deadlines for each phase.

You might also like