Sie sind auf Seite 1von 22

INDIVIDUAL ASSIGNMENT

TECHNOLOGY PARK MALAYSIA

CT078-3-M-SESE

SOFTWARE ENGINEERING SUPPORT ENVIRONMENTS

NP000279

HAND OUT DATE: 24-July- 2019

HAND IN DATE: 22-November-2019

WEIGHTAGE: 50%

INSTRUCTIONS TO CANDIDATES:

1 Submit your assignment at the administrative counter.

2 Students are advised to underpin their answers with the use of references
(cited using the Harvard Name System of Referencing).

3 Late submission will be awarded zero (0) unless Extenuating Circumstances


(EC) are upheld.

4 Cases of plagiarism will be penalized.

5 The assignment should be bound in an appropriate style (comb bound or


stapled).

6 Where the assignment should be submitted in both hardcopy and softcopy,


the softcopy of the written assignment and source code (where appropriate)
should be on a CD in an envelope / CD cover and attached to the hardcopy.

7 You must obtain 50% overall to pass this module.


Abstract

The fundamental objective of this paper is to research and show the implementation agile
methodology while software development, specializing in E-Commerce systems, inside ProLink,
including Feedback. This paper furthermore explains about feasibility, software development
model and proposed solutions regarding the management, elaborates on its process of developing
System.

This research paper also comprises implementation and advantages of agile methodology with
Scrum framework regarding software development, in order to research and achieve the goal in
an efficient manner by developing user friendly software.

Similarly, this research paper also includes, initiating to be taken by the staff at Prolink and the
use of CASE tools that include, analysis tools, design tools, project management tools, database
management tools, documentation tools that furthermore explains about the blue print for the
development of software, according to the requirement by the client.

This research paper is also about the research done by the other researchers on the same platform
and hence, compares what they say.

2
Acknowledgement

I would like to express my sincere gratitude to the associate professor Mr. Chewang Yalmoo, for
providing invaluable guidance, comments and suggestions throughout the course of this project. I
would also like to thank my class mates for constantly motivating me to work harder, advising
and assisting me to keep my progress in schedule. I would also like to thank Mr. Aryan Thakur
for his assistance in Documentation and suggestion in overall project.

I would also like to thank, Asia Pacific University, College of Professional Studies and my
teachers for providing an opportunity to explore software engineering and support environment

3
Contents
Abstract............................................................................................................................................2
Acknowledgement...........................................................................................................................3
Introduction......................................................................................................................................5
Background..................................................................................................................................5
The Company...............................................................................................................................5
Proposed software development process “Agile methodology”.....................................................5
Literature review..............................................................................................................................6
Principal of Agile methodology.......................................................................................................7
Implementing agile methodology with Scrum framework..............................................................7
Advantage of Scrum framework......................................................................................................9
Proposed software tools...................................................................................................................9
Job specification of the employee at Pro Link...............................................................................15
Evaluation of selected tools...........................................................................................................16
Practically demonstration the selected tool...................................................................................16
Critical analysis and effectiveness of CASE tool..........................................................................18
Organizational Activities for the software development...............................................................19
Simulation based upon situation....................................................................................................20
Conclusion.....................................................................................................................................20
Reference.......................................................................................................................................21

4
Introduction

Background

ProLink Systems is a software development company which develops Information Systems for a
variety of clients, specializing in E-Commerce systems. Clients’ requirements will be analysed
and a quotation given for an appropriate solution. When a quote is accepted the software will be
produced – this may be a standardized product, a customized version of their product or a
specially-written system – and any necessary hardware will be purchased and supplied.

The Company

The company has a Sales department (15 staff), a small Marketing team (5 staff), a Development
department (35 staff), a Customer Support department (12 staff) plus supporting Finance and
Administration departments. Although the majority of staff are in the headquarters Kuala
Lumpur, there are Sales, Development and Customer Support staff providing a local presence at
their other locations in Hong Kong and UK.

Proposed software development process “Agile methodology”

At the current scenario, Prolink has 3 to 10 projects at any given time depending on the
complexity of the projects and a project can take from 3 weeks to 1 year to be completed.
Projects may be new implementations or modifications/enhancements to existing systems.
ProLink Systems gives customer service (i.e. offers advice and gives help) and maintains their
products (i.e. makes necessary legal changes, fixes any bugs) throughout an agreed period of
time.

After reviewing the scenario, agile software development methodology is highly recommended
as it requires on iterative development, where, needs and approaches evolve by interacting with
cross-functional self-organizing teams.

5
Literature review
Various scholars have kept their view forward regarding the pros and cons of agile software
development methodology. But however, every point made by scholars in the process is very
important for this research to be successful.

According to [ CITATION Meh18 \l 1033 ]the agile development process of software design and
architecture is usually separated into four views: conceptual, module, execution, and code. This
separation is based on our study of the software architectures of large systems, and on our
experience designing and reviewing software architectures. The different views address different
engineering concerns, and separation of such concerns helps the architect make sound decisions
about design trade-offs. The notion of this kind of separation is not unique: most of the work in
software architecture to date either recognizes different architecture views or focuses on one
particular view in order to explore its distinct characteristics and distinguish it from the
others[ CITATION Meh18 \l 1033 ]

Moreover, [ CITATION Mal17 \l 1033 ] states that, agile software design and development
methodologies have been gaining rigorous attention in the software engineering research
community since their early introduction in the mid-nineties in addition to being highly adopted
by the software development industry. In the last 15 years, an excessive number of research
studies have been conducted on agile methods, a great number of notable methods have been
proposed and various surveys have been presented by many researchers. In this study, the
authors intend to conduct a literature survey study of the surveys of the different agile
methodologies ranging from January 2000 to December 2015 using an intuitive research
methodology called “Compare and Review” (CR). Furthermore, these survey papers were
classified into four major categories according to their area of study. Additionally, the newly
proposed agile methodologies that have not been addressed yet in any other literature review
were reviewed and compared in terms of where the changes that they proposed lay on the SDLC.
[ CITATION Mal17 \l 1033 ]

Likely, [ CITATION Nan18 \l 1033 ] believes, Software developers’ interest in agile software
development has grown over the past ten years for two reasons. Developers have become
frustrated with the shortcomings of traditional plan-driven development that include inflexibility
in responding to changing requirements, emphasis on unproductive documentation, and slow
systems development cycles. They have also become more aware of agile development since the
release of an Agile Software Development Manifesto by a group of agile development pioneers.
There are number of agile development methodologies with Scrum and extreme Programming or
XP being the most prominent and widely practiced. However, all of them share a set of common
characteristics: a) acceptance that requirements will change; b) an adaptable development
process; c) short iterations that deliver tangible functionality; d) frequent, open communication

6
between software developers and customers; and e) system designs that are as simple as possible.
[ CITATION Nan18 \l 1033 ]

Principal of Agile methodology


 Our highest priority is to satisfy the customer through early and continuous delivery of
valuable software.
 Welcome changing requirements, even late in development. Agile processes harness
change for the customer's competitive advantage.
 Deliver working software frequently, from a couple of weeks to a couple of months, with
a preference to the shorter timescale.
 Business people and developers must work together daily throughout the project.
 Build projects around motivated individuals. Give them the environment and support they
need, and trust them to get the job done.
 The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
 Working software is the primary measure of progress.
 Agile processes promote sustainable development. The sponsors, developers, and users
should be able to maintain a constant pace indefinitely.
 Continuous attention to technical excellence and good design enhances agility.
 Simplicity--the art of maximizing the amount of work not done--is essential.
 The best architectures, requirements, and designs emerge from self-organizing teams.
 At regular intervals, the team reflects on how to become more effective, then tunes and
adjusts its behavior accordingly.[ CITATION Ken01 \l 1033 ]

Implementing agile methodology with Scrum framework

Scrum is a framework for project management that emphasizes teamwork, accountability and
iterative progress toward a well-defined goal. The framework begins with a simple premise: Start
with what can be seen or known. After that, track the progress and tweak as necessary. The three
pillars of Scrum are transparency, inspection and adaptation. The framework, which is often part
of agile software development, is named for a rugby formation. Everyone plays a role. When it
comes to product development, Scrum roles include product owner, Scrum master and Scrum
development team.[ CITATION Mar17 \l 1033 ]

Product owner: Produce owner is responsible for gathering the requirements and information
from the client for efficient and quality result.

7
Scrum master: Scrum master is the facilitator, creating better environment for fluency and
efficacy in the work.

Scrum development team: This is the team developing and testing the final product and
deploying it.

Figure 1[ CITATION Ken18 \l 1033 ]

 First step, product owner should determine product backlog listing the requirements in
the sequence of priority.
 Second step, arrangement of meeting to estimate the workload according to the product
backlog by the Scrum team.
 Third step, conduct sprint planning regarding iteration, and select user stories in the sprint
backlog.
 Fourth step, Scrum team finishes sprint backlog, where every member is refined into
partial task regarding to sprint back log.
 Fifth step, everyday Scrum meeting is conducted within sprint where, face to face
interaction is mandatory about the work done in the past and to be done in the future,
after which it will be updated in sprint burn down chart.
 Sixth step, everyday a version must be successfully compiled and execute unit test code,
if it goes successful than version is released.
 Seventh step, very important meeting is conducted along with product owner, Scrum
master, Scrum team including the client after the completing the sprint backlog. This
meeting will demonstrate the working of developed software.

8
 Eight step, finally, sprint retrospective is held where failure and success of process is
discussed with potential solution. This retrospective is conducted for about ninety
minutes and is believed to improve the team culture.

Advantage of Scrum framework

1 Quick distribution to consumers and clients of the functional material or product

2 Increased quality in product

3 Increases efficient in productivity


4 Cost reduction in the development process

5 Greater capacity to implement improvements as they happen

6 Good ethics for workers


7 Enhanced customer experience

8 finalize complex projects that could not previously be carried out

Proposed software tools

Regarding agile software development methodology in


ProLink, product owners, Scrum master, and Scrum team
is highly encouraged to use CASE tools for better
efficiency and quality in the production.

The CASE tool is a type of software tool that is mostly


used for the design and implementation of applications. It
is used for the development and implementation of
applications. CASE devices are used for the development
of hardware products and are close to CAD. The CASE
method typically produces code of high quality, defect-free and maintainable. It is used with
other automated tools to build information systems. CASE allows developers, coders, testing

Figure 2[ CITATION tut19 \l 1033 ]


agents and managers to share a common understanding of the status of a project at every
development stage. It therefore ensures a guided, regulated operation. The CASE method will
graphically show progress[ CITATION Adi11 \l 1033 ]

 Diagram tools: Generally these tools are the tools that aid to represent graphical
structure of the system like, class diagram, flowchart, and use case diagram. Tools like
gliffy diagram are used in the process.

Figure 3 Using Gliffy diagram for graphical representation of the system

 Process Modeling Tools: process modeling tools such as EPF composer aid to choose
process model and change as per the project requirement. This also helps in project
managers in efficiency to his work.

10
Figure 4 using eclipse process framework composer

 Documentation Tools: Documentation is done before the initiation of the project in


which it go through SDLC phase. This tools generate document for technological and end
user reports, which comprises reference or training manuals and functioning manuals
respectively. For instance, DrExplain, Doxygen, Adobe RoboHelp.

Figure 5 using Dr Explain for documentation

 Analysis Tools: This tool help collect specifications, search for incoherence, diagram
imperfection, software inefficiencies or inaccurate omission automatically. For instance
Accompa, Case complete, accept 360

11
Figure 6 using Case complete

 Design Tools: These tools help front end designers to model the application frame layout.
Such tools describe each module and the relations between the modules. For instance,
Animated Software Design

Figure 7 using Adobe Illustrator CC

 Configuration Management Tools: Configuration Management Tools helps to organize


and manage the documents and cods during software development life cycle. It includes
version and revision management, baseline configuration management, change control
management. For example, Fossil, Git,

12
Figure 8 using fossil

 Programming Tools: Generally, IDE, (Integrated Development Environment) like


pycharm, Eclipse, are programming tools. These tools provide inbuilt modules library
and features for software development and also includes feature for testing and
simulation

Figure 9 using Eclipse

 Prototyping Tools: Prototyping Tools are the tools to create a product quicker and more
efficiently. Prototyping shows your ideas, and thereby the way you design can change.
These tools provide graphical library and aid to create rapid prototypes. For instance,
Mockup Builder, Serena prototype composer

13
Figure 10 using Mockup Builder

 Web Development Tools: These tools provide platform for web designer and developer
to build web application and also provide live preview to forecast the final design. These
tools include, Brackets, Adobe Edge Inspect, Fontello

Figure 11 using Brackets

14
 Quality Assurance Tools: The purpose of these tools in an organization is to maintain
and ensure the best quality in product. Testing and change control are carried to make
assurance for the maintenance of quality. For instance, AppsWatch, JMeter

Figure 12 using JMeter

 Maintenance Tools: These tools aid in maintaining the phase of software development
life cycle by maintenance and modification of product. It also includes Automatic
logging and automatic error ticket generation, error reporting techniques, and root cause
Analysis. For instance, , Bugzilla

Figure 13 using Bugzilla

15
Job specification of the employee at Pro Link

 Requirement gathering, Analysis and Planning: Along with Scrum frame work
product owner must communicate with client for the requirement details and suggestion.
In the other hand, planning is very important process the successful competition of the
project. Product owner, Scrum master, and Scrum team must be in the meeting as Scrum
frame work. This meeting also leads to plane the schedule and project. Various tool such
as accompa are used by the team to carry out this process.

 Design: project manager, software designer and developer are requires to use various
tools such as flowchart to create a block structure of the system and is further broken
down in partly modules. This design shows the blue print of the software product.
 Implementation: after the design stage is completed, software developer starts to code
using the required platform such Java, python, .Net. for this, respective IDE tools is used
by the developer such as Pycharm, Eclipse
 Testing: Testing is conducted by the software tester. Tools like Jenkins is used to find the
bug and inefficiency in the product so that it can delivery and maintain quality in the
product
 Maintenance, support and Feedback: .Customer service Department deals with the
client as a communication bridge regarding maintenance, support, and feedback of the
product. A tool such as (os Ticket) is popularly used for customer support and
maintenance.
 Sales and marketing: sales and marketing department is responsible for approaching the
client, scheduling the meeting and closing the deal. It is also responsible for pricing the
product and describing the proposal that company has to offer. Evaluation of the CASE
tool for the software development. Various tools such as Agile CRM is used for the
process.

Evaluation of selected tools

Tools selected as mentioned above are believed to achieve the growth of the company, Prolink.
These tools are very effective in maintaining the quality in the product. Moreover, this tool saves
unnecessary effort and time in the process of software development life cycle. Also, these tools
aid in unity among the company including the client side for fulfilling each minor details in the
project. Likely, the tools create a platform for each individual employee to work in a favorable
environment to achieve the target set in the process of product development. Therefore, these
tools are highly recommended at Prolink.

16
Practically demonstration the selected tool
Is I code in python language, pycharm is an integrated development environment for python. It
facilitates with graphical debugger, integrated unit tester integration including version control
system, code analysis.

Steps to work with pycharm

 Download python and install it


 Download pycharm and install it
 Now creating project is shown bellow

Figure 14 create a new python file

17
Figure 15 create a new file

 Now, final step Start coding

Critical analysis and effectiveness of CASE tool


 Diagram tools: diagram tools represent graphical structure of the system like, class
diagram, flowchart, and use case diagram. Tools like gliffy diagram are used in the
process. It renders it more intuitive and therefore easier to understand and use machine
activity. Users generally receive direct visual feedback on the effect of each behavior via
the design tools. It enables the simultaneous presence of multiple programs and/or
instances. However, upon startup, all of their commands are provided to programs
without an interface. It's not very easy to use, but it's useful for power users and
developers. If you can take all the details you need beforehand, other programs can easily
call your system

 Process Modeling Tools: process modeling tools such as EPF composer aid to choose
process model and change as per the project requirement. Advanced process modeling
and simulation can be timely and manageable as well. Also, makes it possible to view,
imitate behavior and predict a variety of processes. However, miscommunication of the
ruin the process including the pre understanding of the project structure

18
 Documentation Tools: Documentation is done before the initiation of the project in
which it go through Software development life cycle phase. This tools generate document
for technological and end user reports, which comprises reference or training manuals
and functioning manuals respectively. key advantage of this tool is that, it is accessible by
all the employee and doesn’t require physical space. However, data crash or leakage can
cause a problem therefore back or recovery is recommended.

 Analysis Tools: This tool help collect specifications, search for incoherence, diagram
imperfection, software inefficiencies or inaccurate omission automatically. The tools are
vital for software development environment. Forecasting the event is its Major advantage
of these tools. These tools require specific knowledge for its use. Lack of knowledge can
create catastrophe in software environment.

 Design Tools: These tools help front end designers to model the application frame layout.
Such tools describe each module and the relations between the modules. The gives the
better picture of what is going to be made. The mock up design, also gives a chance for
client to make change in the project to meet the requirement of the project.

 Configuration Management Tools: Configuration Management Tools helps to organize


and manage the documents and cods during software development life cycle. It includes
version and revision management, baseline configuration management, change control
management. These features enable the higher efficiency it’s the project development
phase. Proper Documentation of codes enables to ensure quality in deployment of the
software.
 Web Development Tools: These tools provide platform for web designer and developer
to build web application and also provide live preview to forecast the final design. It is
very easy for maintenance purpose and has cross platform capabilities. This tools also
reduce unnecessary waste of time and money.

 Quality Assurance Tools: The purpose of these tools in an organization is to maintain


and ensure the best quality in product. Testing and change control are carried to make
assurance for the maintenance of quality. These tools can resist fault in the product. With
the implementation of this tool any business can improve the reputation in the market and
increase sales or grow business.

 Maintenance Tools: These tools aid in maintaining the phase of software development
life cycle by maintenance and modification of product. It also includes Automatic
logging and automatic error ticket generation, error reporting techniques, and root cause

19
Analysis. These tools aid in scheduling routine repair of the product. It also resists
overtime cost and is economically more efficient.

Organizational Activities for the software development

 Build: The requirements for code are outlined in this stage and are used to build the real
software. This phase includes data management, setup, source code management and
reporting. The tools used in the construction phase are closely aligned with those used in
the code phase.

 Test: Testing starts when the software is built. The research opportunities can be infinite,
so that the context defined in the planning phase should be supervised so that the test
testers know what to test, how to test it and to assess problems and when testing is taken
into account. Some of the most popular approaches used during this phase to prioritize
testing include risk-based testing, testing, testing, heuristic testing and script testing.
Ultimately, it is incredibly important to maintain experiments and to consider anything
that goes wrong along the way and areas for improvement in the field of testing and test
reporting.

 Deploy: The software is ready to be deployed to end users after the test phase. The
methods of deployment differ according to software type, how it is hosted and how users
access it. Software could be produced in or hosted via a third-party container, for
instance, Flexibility when implementing these resources is important, so that teams don't
have the option to be locked into one cloud provider when necessary. The software is
ready to be deployed to end users after the test phase

 Monitor: lastly, it should be inferred that technology is never "complete," even after
customer delivery. Technology should be improved over time, making it a vital job to
track its performance. In the end, this tracking will help identify issues and/or
development opportunities, which will then recover in the SDLC.

20
Simulation based upon situation
This example shows the above mentioned activities like build, test, deploy and monitor are
carried out. Let’s say, the programmer updates the source code and adds a feature for the
upcoming release 3.0, and then sends concise messages to these changes. He then operates on
other feature and also adjusts these functions. These are obviously saved in the version history as
separate part. He then shifts version 2.3 to fix a glitch that only affects the earlier software. The
goal is to allow the bug fix release from his team, version 2.3.1, in advance of release 2.0. He
then can switch back to the 2.0 branch to start working on new 2.0 functionality, that can be
without any network access and thus simple and easy. Now, other can "push" them in one single
command when it is ready to send any individually committed changes to a remote repository

Conclusion

Pro link needs to adopt agile approach for efficient and quality productivity. Agile facilitate with
multiple changes in the process of software development lifecycle in terms of sprint. This feature
helps to customize the product in an efficient way. Using time boxed, fixed scheduled sprint
helps to early and predictable delivery of the product. Transparency is maintained in the process
in which very thing is updated timely.

Furthermore, CASE tools are highly recommended at Pro link for better performance in
developing the product software. These tools increase pace in work flow providing automation.
It increases the accuracy in developing the project. Moreover, it decreases life time maintenance.
Documentation is proper and secured with these tools. Most of all these tools are user friendly.
Therefore it is highly recommended.

Reference
Kumar, A. (2011). CASE Tools. Retrieved 10 10, 2019, from
https://www.mbaskool.com/business-concepts/it-and-systems/14310-case-tools.html

Malek Al-Zewairi, M. B. (2017). Journal of Computer and Communications. Agile Software


Development Methodologies: Survey of Surveys, 5(5), 74-97.

Mehdi Mekni, G. B. (2018). Software Architectural Design in Agile Environments. Journal of


Computer and Communications, 6(1), 171-189.

Nanda C. Surendra, S. N. (2018). Agile Development: Exploring What Practitioners Want to


Know. Journal of Software Engineering and Applications, 11(1), 1-11.

Rouse, M. (2017). Scrum. Retrieved 10 11, 2019, from


https://searchsoftwarequality.techtarget.com/definition/Scrum

21
Scrum.org, K. S. (2018). The Definitive Guide to Nexus:. Retrieved 10 12, 2019, from
https://www.scrum.org/resources/online-nexus-guide

Thomas, K. B. (2001). Manifesto for Agile Software Development. Retrieved 10 11, 2019, from
http://agilemanifesto.org/

tutorials point. (2019). CASE Tools. Retrieved 10 10, 2019, from


https://www.tutorialspoint.com/software_engineering/case_tools_overview.htm

22

Das könnte Ihnen auch gefallen