Anda di halaman 1dari 6

Assignment No#3

Group Members:
Iqra Aftab (0029)
Amna Matloob (0026)
Umbreen(0015)
Fatima sheraz (0033)
Class:
Msc (IT) A4
Submitted to
Pro. Zain Hassan
Subject
Software Engineering
Scenario
Alpha Bravo Charlie (ABC) Inc. has appointed you as Software Architect. The main responsibility
assigned to you is to develop a perfect design from the set of Requirements which are gathered
already from the stakeholders, adopt software design styles according to the system requirements.
The Company ABC Inc has won a huge project of web based ERP. This is a great chance for the
company to go into the market earn its name. Now your job is to Design the System according to
the functional as well as non functional requirements already gathered / understood.

Questions
a.For the said system which architectural style you will be adopting? Draw a high level diagram
for this architectural style for Web Based ERP. Justify your answer with valid arguments

Answer
Here my suggestion is layered Architectural

The first question that should be answered: Why the web is suitable for developing applications?
It is not a difficult question, of course. In the World Wide Web Consortium (W3C) Architecture
of the Web Recommendation paper various examples are given, notably one about a user who
wants to see the weather in a place where she wants to travel to. The nature of the Internet -
trafficking data over protocols from network to network - is a powerful resource that make
communication between different places very fast and easy. This way computer programs can be
made to improve the relation between systems and people, and what is seen today is that it
happened.
I am going to talk about my favorite architecture methodology ie. Three-tier model/Layerd
Architecture in details and its pros and cone.
Three-tier model/Layerd Architecture (An architecture with Presentation, Business Logic and
Database tiers)
A software layer is a common layer for J2EE application, where each layer is specific for one
section of functionality of the system. The layers are organized in the system in such way that
providing support and base functionality for other layers.
Layering is not new concept for software industry.For example if you take the network protocols,
it has been using this for years. For instant, FTP, Telnet and browse are services which depends
on TCP/IP layer of network, so that if you need to modify or technology advances, you can do it
without affecting to the FTP or Tel net configuration.
So in a nutshell we are keep apart the each layer with distinct functionality in a system. The below
table outlines the layers which we can identify in a typical layerd architected software application.
Below is layers and its roles
Data Access Object layer – Manage reading ,writing, updating, and delete stored data, Commonly
contains JDBC , Hibernate ,IBatis or some other Database connectivity code.
Business logic layer- Mange business processing tool and logic
Value Object Layer – Lightweight structures for related business information These are some times
referred to as data transfer object
Deployment layer – Publishes business object capabilities.
Presentation layer – Control display the end user
Architectural component layer – Generic application utilities.Often these objects are good
candidates for enterprise side user
Software Layers for J2EE Application

So lets go the each layer in details.


Data Access Layer.
Data access layer is specific for handling persistent unit of the application.Basically database
SRUD operation.It manage access to persistent storage of some type.Simply the persistent storages
are relational database,data xml file and data files.
The primary reason to separate the data access from rest of application is . that’s easy to switch
data sources and share DAOs between application.
A couple of patterns for data objects are most common.The simplest pattern has each persistent
object represent as a DAO .The more complex and but more flexible pattern in common use is a
factory base pattern.
Value Object Layer
Every applicaion has data items that logically belongs and typically are used togather. Its
programmatically canvenient and with enterprise beans performance enhancing to treat this logical
group of data items as a seperate object.
Business Logical layer
Object in the business logic layer combine data with business rules, constraints and activities.
Business objects should be separated from DAOs, VOs, and deployment layer, such as enterprise
beans to maximize the possibility of reuse.Business objects often use and coordinate the activities
of multiple data object.
Deployment layer
Object in the deployment layer called deployment wrappers, are the heart of J2EE
achitecture.Deployment wrappers publish business object functionality to java classes that could
be on separate machine.
Presentation layer
The presentation layer is the section of application responsible for everything end users physically
see in the end user interface.This layer can be build using JSP,Servelet, Html,javascrip etc.
Architectural component Layer
Ideally all general utilities and components would be provided JDK.But accordingly your
requirement , you will need to use third party libraries and component.All those component are
reside in this layer.
Finally this is all about layered architecture.Next blog i will show coding project example for the
Layered architecture.
Questions
b.Which Software Design strategy you will adopt for this project. Give answer with valid
arguments.

Answer
Enterprise resource planning (ERP) is an enterprise-wide information system designed to
coordinate all the resources, information, and activities needed to complete business processes
such as order fulfillment or billing.
An ERP system supports most of the business system that maintains in a single database the data
needed for a variety of business functions such as Manufacturing, Supply Chain Management,
Financials, Projects, Human Resources and Customer Relationship Management.

Software Architecture Design


Here our suggestion is combination of
1. Waterfall Model
2. Spiral Model
3. Incremental Model

1) Waterfall Model

 This model is used only when the requirements are very well known, clear and fixed.
 Product definition is stable.
 Technology is understood.
 There are no ambiguous requirements

2) Incremental Model
 Customer can respond to feature and review the product.
 Lower initial delivery cost.
 Initial product delivery is faster.
 Core product is developed first i.e main functionality is added in the first increment.
3) Spiral Model
 High amount of risk analysis hence, avoidance of Risk is enhanced.
 Good for large and mission-critical projects.
 Strong approval and documentation control.
 Additional Functionality can be added at a later date.
 Software is produced early in the software life cycle
Here we discuss why these three model is best ? . And why we should use combination of these
models for develop perfect system?
Risk of Waterfall Model
Once an application is in the testing stage, it is very difficult to go back and change something that
was not well-thought out in the concept stage. No working software is produced until late during
the life cycle.
Alternate Solution by using Incremental Model
To reduce these problem by using Incremental Model because we know initial product delivery is
faster and core product is developed first i.e main functionality is added in the first increment
because with each release a new feature is added to the product and customer response and view
the product . Its also easier to test and debug.
Alternate Solution by using Spiral Model
Its is similar to the Incremental with little bits different feature. By using spiral model Customer
can see the working product at the early stages of software development life cycle as compared to
waterfall model . Different changes can be added at the late life cycle stages.
Risk monitoring is one of the core parts which makes it pretty attractive, especially when you
manage large and expensive projects. Moreover, such approach makes your project more
transparent because, by design, each spiral must be reviewed and analyzed because in waterfall
model its not overlapping and go back to first stage and incremental has also not ability to go back
to first stage because newly features added in every new increment before previous incremented
has completed.
High amount of risk analysis hence, avoidance of Risk is enhanced. It is also Good for large and
mission-critical projects on the other side waterfall model is for small projects and its not suitable
for complex problem.
Strong approval and documentation control and it is not quality in waterfall model and incremental
model.

Anda mungkin juga menyukai