Analysis
Analysis
Agile methods are diverse, but they all rely upon the basic principles put forward by the
prominent software developers in 2001.
Agile methods are based upon rapid development cycles which end with incremental delivery of
software pieces and constant interaction with the customer. Each new cycle of software
development relies upon the results of the previous cycle, with the consideration of customer’s
feedback and requests as to functionality and a common vision of the project. Due to the constant
cooperation with the customer and continuous delivery of the software pieces, the development
project becomes very flexible and responsive to change.
Agile methods are considered as a panacea by many software project developers. However, like
any other development methodology, the Agile methodology has its strengths and weaknesses. It
works well with some types of projects and fails with others. Here we will try to outline the main
advantages and disadvantages of Agile methods for you to decide if they are suitable for your
own project.
High flexibility of the project. Short cycles and constant iterations allow you to adapt
your project frequently and tailor it to the customer’s needs at any moment. You don’t
have to waste your time and resources on delivering a full project which will be rejected
by the customer. This makes the development process extremely flexible.
High customer satisfaction over the development process. Since Agile projects are
closely coordinated with the customer, he/she has a strong impact on the development
project. Software pieces are delivered constantly, in short cycles and customer’s feedback
is always taken into consideration.
Constant interaction among the stakeholders. With your teams constantly interacting
with each other and with the customer, you avoid producing tons of technical
documentation, processes, and tools. Each member feels like an important part of the
team participating in the decision-making process. This stimulates creativity and
initiative and leads to better results.
Continuous quality assurance, attention to details. Quality of the product should be
ensured by the testing team from the early stages of agile development. Since the
development is conducted in short cycles, testing is run non-stop, allowing you to
produce a good final product.
As you can see, Agile includes enough pluses and minuses. Therefore, it is very important for
project managers and their teams to identify and select the right and appropriate project
management tool for strategic goals and issues.
1.2 Evaluate different system development life cycle models and suggest the
most suitable SDLC model that can be applied for the given case study
provided the results of your systems investigation. Identify the problems in
given scenario and give reasons for moving from traditional to agile
methodology.
Strengths
. SDLC possesses a number of strengths that sometimes makes it relevant to the modern
information systems environment:
The SDLC is a tried and tested approach that is very suitable for the development of
large-scale information systems
.The traditional SDLC relies on the production of systems documentation and
s t a nd a rds o f d ev el o pm e nt t h at ca n b e u se d t o gui d e t h e de v el o pm ent o f
an information system and can be used as reference and training material for users.
Th e se qu en t i al a nd ph as e d na t u r e of t h e S D LC al l o ws a com pl ex
s ys t em s development problem to be broken down into manageable and
understandable tasks.
T h e S D L C r e l i e s o n t h e u s e o f f o r m a l i z e d a n a l ys i s a n d d e s i g n t o o l s
a n d techniques that graphically show the nature of data and information flows within
the system.
The structured nature of the traditional SDLC allows the incorporation of formal
project management techniques and tools to guide the systems development
process.
Weaknesses
The main weaknesses with the traditional systems development life cycle are as
follows:
(i)The SDLC ignores or underplays end-user involvement in the systems development
process. The end user is often faced with operating an information system that
issuer-unfriendly or fails to deliver the user’s requirements for the system.
(ii)Over 90 per cent of IT-based systems development occurs within the
business environment. The use of computing and information technology
within business organizations is based on small desktop machines or personal
computers, usually networked locally (in a local area network within the organization)
or connected to the wider business environment (through a wide area network).
(iii)The traditional SDLC is time consuming and costly in terms of human resourcing
and monetary expenditure. The modern day business requirement is for systems to be
developed as quickly as is practicable and within certain budgetary constraints.
(iv)The development methodology is often too rigid, sequential and inflexible
to change. Time and cost savings can be achieved by developing stages of the
lifecycle in parallel or out of sequence.
(v)The SDLC approach is often a slow and laborious process. This is a problem when
there is a need for information systems to be developed as quickly as possible
to meet the requirements of dynamic business environments.
(vi)The SDLC assumes a sequential, step by step approach to development
that ignores the possibility of testing the proposed system at an early stage of the
lifecycle following the discovery of new user requirements
.Thes e failings of the traditi onal approach to s ystems devel opment have l ed to
the evolution of alternative development approaches with the aims of; reducing development
time and cost of s ystems developm ent; Im provi ng the deliver y of s yst em and
user requirements; Recognizing advances in computing and information technology,
and, Recognizing the nature of systems within modern business environments.
All of these concerns and unknowns are apt reasons to proceed with a feasibility study, which the
college finally did undertake. As a result, the suzuki now is forging ahead with its expansion
plans without needing to leave its historic home. If it had not taken the time and effort to conduct
a feasibility study, the college would never have known whether its dreamed-of expansion could
become a viable reality.
2.2 According to given scenario briefly explain vision and goals cost-benefit
analysis, legal, economic, technical, operational, timeframes, organizational
culture security considerations.
Pak Suzuki is built on the idea of a responsible corporate citizenship thereby managing quality,
environmental, safety & occupational health matters as an integral part of our business. In
fulfilling this responsibility Pak Suzuki adheres to the following fundamental principles:
We are committed to provide top quality products at competitive price to the satisfaction
and requirement of our customers.
We recognize the interrelationship between energy and the environment, and we promote
the efficient use of energy throughout our system.
We ensure safe disposal of waste generated from our facility and will minimize the
discharge of waste materials into the environment by utilizing responsible pollution
control practices.
Pak Suzuki, acting as a responsible corporate organization; is committed to well being of the
society through its contribution in the field of education, health, promoting environmental
care in particular and to improve quality of life of underprivileged people as a whole.
Policy
Pak Suzuki is committed to act responsibly, create value for it’s Stakeholders and to
contribute to economic development of Pakistan. Whilst enhancing the quality of life of our
employees, we also believe in positively contributing to local communities and society at
large.
Pak Suzuki believes that environment has a major impact on quality of life of people & is
directly related to health of the community. To achieve this, Pak Suzuki has Environment
Program in place throughout the company.
Plantation not only enhances the beauty of environment but it also plays a positive role in
development of Healthy Environment as it is a natural source of improving our environment;
keeping in view this, plantation activity (under CSR Program) has been executed at Pakistan
Council of Scientific & Industrial Research (PSCIR) and Pak Swiss Training Centre (PSTC) on
Friday 7th December, 2018. The Plantation project consist of planting 300 saplings (including
Mango & Sapodilla (chickoo) along with Neem) at several locations. During a visit, Mr. Ghulam
Farooq, Executive Officer –Supply Chain formally inaugurated the Plantation project under CSR
by planting a sapling. In Plantation activity, Pak Suzuki, PCSIR and PSTC Officials participated
along with students. PCSIR and PSTC management paid thanks to Pak Suzuki management for
their continuous support for the betterment of Education and Environment of local community.
Pak Suzuki firmly believes that our youth is future of Pakistan, for which Academic and
Technical education is essential. To support this obligation, Pak Suzuki is providing Training
and Equipment to Technical Schools and Rebuilding/ Renovation of Schools in under privilege
areas.
Your Evaluation Plan will specify how you will collect and analyse data. It is useful to plan your data
collection and analysis around a few Key Evaluation Questions. These are high level questions that the
evaluation is intended to answer (for example, "How effective was the program?").
You will need different types of options for different types of evaluation questions:
Type of question Example Where to find options for answering this type of question
Was the policy
implemented as planned?
Descriptive
Did school attendance
What has rates increase after the
happened? government abolished
tuition fees at
government schools?
Causal
Evaluative
Action
What should we
do?
Compare the pros and cons of different options for each evaluation question
For each evaluation task you will find a range of options, each with their own advantages and
disadvantages.
For example, when gathering data to answer descriptive questions:
An email questionnaire can gather data quickly – but response rates are often low, and it will not
include those without technological access.
A pen and paper questionnaire needs less technical support – but can be harder to distribute and
collect and take longer to analyse.
On each option page, you will find advice about when it might be appropriate to choose that
option, taking into account available time, expertise and other issues.
3.1 Identifying user and system requirements and any constraints, including
possible security issues. How to overcome the constraints and security issue.
User requirements, often referred to as user needs, describe what the user does with the system,
such as what activities that users must be able to perform. User requirements are generally
documented in a User Requirements Document (URD) using narrative text. User requirements are
generally signed off by the user and used as the primary input for creating system requirements.
An important and difficult step of designing a software product is determining what the user actually
wants it to do. This is because the user is often not able to communicate the entirety of their needs
and wants, and the information they provide may also be incomplete, inaccurate and self-conflicting.
The responsibility of completely understanding what the customer wants falls on the business
analyst. This is why user requirements are generally considered separately from system requirements.
The business analyst carefully analyzes user requirements and carefully constructs and documents a
set of high quality system requirements ensuring that that the requirements meet certain quality
characteristics.
System requirements are the building blocks developers use to build the system. These are the
traditional “shall” statements that describe what the system “shall do.” System requirements are
classified as either functional or supplemental requirements. A functional requirement specifies
something that a user needs to perform their work. For example, a system may be required to enter
and print cost estimates; this is a functional requirement. Supplemental or non-functional
requirements specify all the remaining requirements not covered by the functional requirements. I
prefer to use the term supplemental requirements instead of non-functional requirements; who wants
to be termed nonfunctional? Supplemental requirements are sometimes called quality of service
requirements. The plan for implementing functional requirements is detailed in the system design.
The plan for implementing supplemental requirements is detailed in the system architecture. The list
below shows various types of supplemental requirements.
Accessibility
Accuracy
Audit, control, and reporting
Availability
Backup and restore
Capacity, current and forecast
Certification
Compliance
Compatibility of software, tools, standards, platform, database, and the like
Concurrency
Configuration management
Dependency on other parties
Deployment
Documentation
Digital warfare and worldwide cyberattack rates are on the rise, and protection on corporate
networks is even more crucial.
Databases are a key target for cybercriminals due to the often valuable nature of sensitive
information locked away inside. Whether the data is financial or holds intellectual property and
corporate secrets, hackers worldwide can profit from breaching a businesses' servers and
plundering databases.
According to a new report issued by Dark Reading, there are a number of key security failures
that cybercriminals take advantage of. However, it is often the staff of an enterprise — database
developers, administrators and the like — who create the environment necessary for attacks to
gain access to data.
The researchers say that the top ten vulnerabilities often found in database-driven
systems,whether during the creation phase, through the integration of applications or when
updating and patching, are:
1. Deployment Failures
The most common cause of database vulnerabilities is a lack of due care at the moment they
are deployed. Although any given database is tested for functionality and to make sure it is
doing what the databases is designed to do, very few checks are made to check the database
is not doing things it should not be doing.
2. Broken databases
The SQL Slammer worm of 2003 was able to infect more than 90 percent of vulnerable
computers within 10 minutes of deployment, taking down thousands of databases in minutes.
This worm took advantage of a bug that was discovered in Microsoft's SQL Server database
software the previous year, but few system administrators installed a fix, leaving computers
vulnerable.
By exploiting a buffer-overflow vulnerability, the worm's success demonstrates how critical
installing security patches and fixes are. However, whether lacking time or resources, not
enough businesses keep their systems regularly patched, leaving databases vulnerable.
3. Data leaks
Databases may be considered a "back end" part of the office and secure from Internet-based
threats (and so data doesn't have to be encrypted), but this is not the case. Databases also
contain a networking interface, and so hackers are able to capture this type of traffic to
exploit it. To avoid such a pitfall, administrators should use SSL- or TLS-encrypted
communication platforms.
6. A lack of segregation
The separation of administrator and user powers, as well as the segregation of duties, can
make it more difficult for fraud or theft undertaken by internal staff. In addition, limiting the
power of user accounts may give a hacker a harder time in taking complete control of a
database.
7. Hopscotch
Rather than taking advantage of buffer overflow and gaining complete access to a database in
the first stage, cybercriminals often play a game of Hopscotch: finding a weakness within the
infrastructure that can be used as leverage for more serious attacks until they reach the back-
end database system. For example, a hacker may worm their way through your accounts
department before hitting the credit card processing arena. Unless every department has the
same standard of control, creating separate administrator accounts and segregating systems
can help mitigate the risk.
8. SQL injections
A popular method for hackers to take, SQL injections remain a critical problem in the
protection of enterprise databases. Applications are attacked by injections, and the database
administrator is left to clean up the mess caused by unclean variables and malicious code
which is inserted into strings, later passed to an instance of SQL server for parsing and
execution. The best ways to protect against these threats are to protect web-facing databases
with firewalls and to test input variables for SQL injection during development.
The project team includes the project manager and the group of individuals who work together
on a project to achieve its objectives. It consists of the project manager, project management
staff, and other team members who are maybe not directly involved with management but carry
out the work related to the project. This team consists of people from different teams with
precise subject matter knowledge or with the required skill set to carry out the work of the
project. The structure and characteristics of a project team usually vary, but the project
manager’s role as the leader of the team remains constant. However, the amount and nature of
authority the project manager has over the members can differ.
Project Manager
The project manager plays the chief part in the project and is responsible for its success and
quality. His job is to make sure that the project proceeds and completes within the specified time
frame and the ascertained budget, and accomplishing its goals at the same time. Project managers
ensure that resources are sufficient for the project and maintain relationships with contributors
and stakeholders.
Project team members are mainly the people who work on various phases of the project. They
could be in-house staff or external consultants and may be working on a full-time or part-time
basis. Their roles can differ according to each project.
Provide expertise
Work with users to determine and meet business needs
Project Sponsor
The project sponsor is the driver and in-house champion of the project. He has a vested interest
in the successful outcome of the project. They are typically members of senior management –
those with a stake in the project’s outcome. Project sponsors work closely with the project
manager. They legitimize the project’s objectives and participate in high-level project planning.
Also, they often help resolve conflicts and remove obstacles that occur throughout the project,
and they sign off on approvals needed to advance each phase.
The business analyst recognizes requirements of the organization and suggests solutions to the
problems. In a project team, they make sure that the current project’s objectives can solve
existing problems and add value to the organization. They can also help make the most of project
deliverables.
Project team’s compositions may differ based on organization’s culture, scope, and location.
Dedicated: This is the simplest structure for a project manager. In this composition, all or most
of the project team members are appointed to work full-time on the project. The project team has
to report directly to the project manager, and the lines of authority are well-defined so team
members can concentrate on the project’s objectives. Dedicated project teams are usually seen in
projectized organizations, where most of the resources of the organization are involved in project
work, and project managers have independence and power.
Part-Time: Some projects are assigned to a team as an additional temporary work, with the rest
of the organization’s members carrying out their regular functions. The functional managers
have the control over the team members and the resources assigned to the project, while the
project manager continues with other management duties. Part-time team members could also be
assigned to more than one project at one time. Part-time project teams are mostly seen within
functional organizations. Matrix organizations use both dedicated and part-time project teams.
The success of a project cannot be accredited to a single person. It is the contribution of every
member of the team and people associated with the project from outside. It is imperative to keep
an account of how many people are related to your project and which role should be assigned to
each one of them. A proper training and thorough knowledge of the subject can guide you with
the same.
Most individuals focus on the technical knowledge of the employee and neglect the interpersonal
and managerial skills, which is a big mistake. The latter is as important as the former because
working with an exceptional programmer who is inflexible and not willing to cooperate could be
a problem.
Learning about the specifics of the composition and contributions of a project team members
would give you an insight of what’s important and what’s not. It would also help you make the
most of the existing talent and take steps to minimize flaws present in your group.
4.1Design elements that could be used to design the traditional and agile
methodologies and make the Data flow diagrams and flow charts related to
the solution you provide according to the scenario.
Traditional approaches are suited when requirements are well understood – for example, in
industries like construction, where everyone clearly understands the final product. On the other
hand, in rapidly changing industries like IT, traditional development procedures might fail to
achieve project goals. Below are the major disadvantages of traditional SDLC methods.
Problem statement / business need has to be defined well in advance. The solution also
needs to be determined in advance and cannot be changed or modified.
The entire set of requirements have to be given in the initial phase without any chance of
changing or modifying them after the project development has started.
Traditional development methodologies are suitable only when the requirements are precise i.e.,
when the customer knows exactly what they want and can confidently say that there won’t be
any major changes in scope throughout the project development. It is not suitable for large
projects such as maintenance projects where requirements are moderate and there is a great scope
for continuous modification.
Though the problem statement/business need and solution are defined in advance, they
can be modified at any time.
Requirements/User Stories can be provided periodically implying better chances for
mutual understanding among developer and user.
The solution can be determined by segregating the project into different modules and can
be delivered periodically.
The user gets an opportunity to evaluate solution modules to determine whether the
business need is being met thus ensuring quality outcomes.
It is possible to create re-usable components.
There is less priority on documentation which results in less time consumption and
expenditure.
Agile proposes an incremental and iterative approach to development. Consider Agile Scrum
Methodology to get good understanding of how Agile processes work. Scrum Master plays an
important role in Agile Scrum Methodology. A Scrum Master interacts daily with the
development team as well as the product owner to make sure that the product development is in
sync with the customer’s expectations. The following diagram illustrates the lifecycle process in
Agile methodologies.
The main difference between traditional and agile approaches is the sequence of project phases –
requirements gathering, planning, design, development, testing and UAT. In traditional development
methodologies, the sequence of the phases in which the project is developed is linear where as in Agile, it
is iterative. Below picture illustrate this difference.
The main project variables like cost, time, quality etc., can be compared as shown in the following
picture.
Key points while making the transition from Traditional to Agile methodologies:
4.2 Determining the tools and techniques relevant for the design of systems
fordatabase applications, web applications and other software applications
The Structure Chart is a basic tool of Structured System Design. It is a graphic representation of
a hierarchy of modules and the relationships between them. In Section 2 two types of Structure
Charts were discussed; they were referred to as Structure Charts and Program Structure Charts.
The first type represents the detailed functional breakdown of the software without taking
packaging into account. The second type illustrates the actual programs and procedures to be
developed.
2. Identify the major input streams, output streams, and the processing center. The processing
center can often be identified by parallelism of data flow (see Figure below where transactions
A, B, C are processed in parallel).
3. Define a module for each input or output stream and the processing center. For the processing
center, define a sub-module for each of the processes occurring in parallel.
4. For each of the lowest level modules, take the corresponding portion of the DFD and repeat
Step 2 and 3 until fully decomposed.
5. Refine the design to decrease the coupling and increase the cohesion of the modules. This is
necessary because DFD's do not take into account control flow, trivial data paths or packaging
considerations.
For more information about this technique refer to Structured Systems Analysis: Tools and
Techniques by Gane and Sarson.
Because this approach is not widely used it is not discussed here. The reader may refer to Data
Structured Program Design by Kirk Hansen.
Object-Oriented Design
Object-Oriented Design is an approach to modular decomposition which views a problem in
terms of objects and operations and defines the solution in the same terms. It is applicable to
applications such as simulation systems, real time systems, and to systems with complex or
dynamic entities which are difficult to represent using traditional techniques.
This approach requires a language in which real world objects can be represented. These
languages typically build classes of an object in the application.
For each class, the attributes and properties that each object in the class shares are defined. The
actions which each object can perform are described. These are written in the form of messages
to which each object in the class can respond. As a result, all communication between any two
objects, whether they are from the same class or not, is performed by sending messages. Thus,
object-oriented languages have a very high degree of encapsulation, in that each object is
responsible for its own operation, and no other object may access its structure directly. The net
result is that each message is like a separate black-box, a property which makes system design
more manageable.
New classes are introduced as specializations or generalizations of existing classes. For example,
in a naval simulation system, a class SHIP could be introduced, and the attributes and properties
of a ship defined. Specializations of this class, such as FRIGATE and DESTROYER, could then
be introduced. These two new classes could inherit the properties of the class SHIP, while
defining those properties which makes them unique.
Many object-oriented languages are now becoming available, such as SMALLTALK, LISP
FLAVERS, Objective C, C++, ADA, and SIMULA.
The following is an example of a temperature monitoring system which will be used to illustrate
Object Oriented Design. The system is described as follows:
'There are ten independent sensors which continually monitor temperature. Initially all of the
sensors are disabled. If any of the enabled sensors register an out of limits value the system must
immediately post an alarm condition. It must also record the status of all sensors every fifteen
minutes. Asynchronously it must be able to get a user command to enable or disable a sensor, or
set the temperature limits."
• Alarm
- Post out of limits condition
• Sensors
- Disable
- Enable
- Set Limits
• Recording Device
- Log the status of sensors
• Timer
- Interrupt
.
4.3 Identifying the design documentation contents for different application
typese.g. for databases, web design and other software applications.
Document! X is not just an automated database documentation build tool - it is also includes a
content (descriptions of database elements, hyperlinks to related pages or web sites etc.) where
required.
Developing a website is like building a house. When building a house, you ask an architect to
draw up the plans. The architect obtains building permits, city licenses, and more… All before
any actual construction begins. Similarly, Website Definition Documents act as your website’s
architectural blueprint. By using these documents, you and your design agency can build a strong
foundation.
In the web business, the initial planning phase can be referred to as “Definition”, “Scope” or
“Discovery.” During this preliminary planning phase, your website agency will create
documents that define website architecture, and identify key technical and creative requirements.