Friday, January 25, 2008

RSR report done by lisui


Requirements Specification Template

OVERVIEW OF REQUIREMENTS

System Functions
Our report is base on the function of RSS like blog entries. It also can manage photos and store, organize, search. Social bookmarking can also be used to store, organize, search, and manage bookmarks of web pages on the Internet through the use of metadata. A metadata may describe an individual content item, or a collection of data including multiple content items.

User Characteristics

Administrator-
The administrator is able to create user account.
The administrator is able to delete user account.
The administrator is able to set user’s username.
The administrator is able to set user’s password.
The administrator is able to set user permission.
The administrator is able to set the user’s name by increasing order.
The administrator is able to set the user’s name by decreasing order.

The administrator shall allow be able to download the photos.
The administrator shall allow be able to upload the photos.
The administrator shall arrange the photos by category of albums.
The administrator shall arrange the photos by category of date.
The administrator shall arrange the photos by category of title.
The administrator shall arrange the photos by category of time.
The administrator shall arrange the photos by category of project owner.
The administrator shall arrange the photos by category dept owner.
The administrator is able to crop the photo.
The administrator is able to resize the photo.
The administrator is able to edit the photo.
The administrator is able to set the brightness of the photo.
The administrator is able to set the darkness of the photo.
The administrator is able to set the brightness of the photo.
The administrator is able to store png format.
The administrator is able to store jpeg format.
The administrator is able to store gif format.
The administrator is able to store the photo.
The administrator is able to store the name.
The administrator is able to store the category.
The administrator is able to store the date.
The administrator is able to store the time.
The administrator is able to store the dept owner.
The administrator is able to store the project owner.
The administrator provides video feeds which allow user to browse the video.
The administrator is able to write feedback/comments to the system.
The administrator provide shortcut icon.
The administrator provides share access across department.
The administrator provides share access across business partners.
The administrator can be access 24 hours.
The administrator is able to provide link path within three clicks.
The administrator provides English languages.
The administrator provides Malay languages.
The administrator provides mandarin languages.
The administrator provides Tamil languages.
The administrator provides hokkien languages.
The administrator provide search engine to search for photo name.
The administrator provide search engine to search for photo date.
The administrator provide search engine to search for photo albums.
The administrator provide search engine to search for photo time.
The administrator provide search engine to search for project owner.
The administrator provide search engine to search for dept owner.
The administrator is able to serve 20 to 30 feeds a day.
The administrator is able to create bookmarks.
The administrator is able to add keywords.
The administrator is able to assign bookmarks.
The administrator is able to print in different formats.
The administrator is able to delete photo.
The administrator is able to add photo.
The administrator is able to delete Text.
The administrator is able to add Text.
The administrator is able to arrange categories in categories.

End user-
The End user can arrange the photos by category of albums.
The End user can arrange the photos by category of date.
The End user can arrange the photos by category of title.
The End user can arrange the photos by category of time.
The End user can arrange the photos by category of project owner.
The End user can arrange the photos by category dept owner.
The End user is able to download the photos.
The End user is able to upload the photos.
The End user is able to crop the photo.
The End user is able to resize the photo.
The End user is able to edit the photo.
The End user is able to set the brightness of the photo.
The End user is able to set the darkness of the photo.
The End user is able to set the brightness of the photo.
The End user can use video feeds to browse the video.
The End user is able to write feedback/comments to the system.
The End user provides share data access across department.
The End user provides share data access across business partners.
The End user can access the system at anytime.
The End user can access the system at anywhere.

The End user is able go to that link within three clicks.
The End user can convert the system into English languages.
The End user can convert the system into Malay languages.
The End user can convert the system into mandarin languages.
The End user can convert the system into Tamil languages.
The End user can convert the system into hokkien languages.
The End user can use search engine to search for photo name.
The End user can use search engine to search for photo date.
The End user can use search engine to search for photo albums.
The End user can use search engine to search for photo time.
The End user can use search engine to search for project owner.
The End user can use search engine to search for dept owner.
The End user is able to send 20 to 30 feeds a day.
The End user is able to create bookmarks.
The End user is able to add keywords.
The End user is able to assign bookmarks.
The End user is able to print in different formats.
The End user is able to delete photo.
The End user is able to add photo.
The End user is able to delete Text.
The End user is able to add Text.
The End user is able to arrange categories in categories.
The End user is able to login the system.
The End user is able to logout the system.

Manager-
The manager is able to post announcement.

The manager can arrange the photos by category of albums.
The manager can arrange the photos by category of date.
The manager can arrange the photos by category of title.
The manager can arrange the photos by category of time.
The manager can arrange the photos by category of project owner.
The manager can arrange the photos by category dept owner.
The manager is able to download the photos.
The manager is able to upload the photos.
The manager is able to crop the photo.
The manager is able to resize the photo.
The manager is able to edit the photo.
The manager is able to set the brightness of the photo.
The manager is able to set the darkness of the photo.
The manager is able to set the brightness of the photo.
The manager can use video feeds to browse the video.
The manager is able to write feedback/comments to the system.
The manager provides share data access across department.
The manager provides share data access across business partners.
The manager can access the system at anytime.
The manager can access the system at anywhere.

The manager is able go to that link within three clicks.
The manager can convert the system into English languages.
The manager can convert the system into Malay languages.
The manager can convert the system into mandarin languages.
The manager can convert the system into Tamil languages.
The manager can convert the system into hokkien languages.
The manager can use search engine to search for photo name.
The manager can use search engine to search for photo date.
The manager can use search engine to search for photo albums.
The manager can use search engine to search for photo time.
The manager can use search engine to search for project owner.
The manager can use search engine to search for dept owner.
The manager is able to send 20 to 30 feeds a day.
The manager is able to create bookmarks.
The manager is able to add keywords.
The manager is able to assign bookmarks.
The manager is able to print in different formats.
The manager is able to delete photo.
The manager is able to add photo.
The manager is able to delete Text.
The manager is able to add Text.
The manager is able to arrange categories in categories.
The manager is able to login the system.
The manager is able to logout the system.


General Constraints




These are list of general constraints from the system:
1) We need to work with our given budget without overspending on the system.
2) We having problem in Timeslot of training for 900 staff.
3) We need to have different languages to communicate with the staff during training.
4) We are having problem meeting the deadline.
5) We are having problem meeting the requirement.
6) We are shortage of manpower.
7) We are also lack of experience staff for the training.
8) We need to training the 900 staff within a week.(600 fulltime 300 part-time)
9) We need different languages trainer to communicate with the staff.
10) We need to provide different languages training materials.
11) The staff working time is 8-6.so we need to arrange the training after 6
12) We need to squeeze everything within 3 hours training.
13) We need to find a fix qualified instructors to help during training.


Functional Requirements


These are list of function requirement from the system:
The system shall allow be able to download the photos.
The system shall allow be able to upload the photos.
The system shall view the photos by category of albums.
The system shall view the photos by category of date.
The system shall view the photos by category of title.
The system shall view the photos by category of time.
The system shall view the photos by category of project owner.
The system shall view the photos by category department owner.
The system is able to crop the photo.
The system is able to resize the photo.
The system is able to edit the photo.
The system is able to set the brightness of the photo.
The system is able to set the darkness of the photo.
The system is able to set the brightness of the photo.
The system is able to store png format.
The system is able to store jpeg format.
The system is able to store gif format.
The system is able to store the photo.
The system is able to store the name.
The system is able to store the category.
The system is able to store the date.
The system is able to store the time.
The system is able to store the dept owner.
The system is able to store the project owner.
The system provides video feeds which allow user to browse the video.
The system is able to write feedback/comments to the owner.
The system is able to write feedback/comments to the item post.
The system provide shortcut icon.
The system provides share access across department.
The system provides share access across business partners.
The system can be access 24 hours.
The system is able to provide link path within three clicks.
The system provides English languages.
The system provides Malay languages.
The system provides mandarin languages.
The system provides Tamil languages.
The system provides hokkien languages.
The system provide search engine to search for photo name.
The system provide search engine to search for photo date.
The system provide search engine to search for photo albums.
The system provide search engine to search for photo time.
The system provide search engine to search for project owner.
The system provide search engine to search for dept owner.
The system provide login for the user.
The system provides logout for the user.
The system is able to serve 20 to 30 feeds a day.
The system is able to create bookmarks.
The system is able to add keywords.
The system is able to assign bookmarks.
The system is able to print in different formats.
The system is able to delete photo.
The system is able to add photo.
The system is able to delete Text.
The system is able to add Text.
The system is able to arrange categories in categories.

Data Requirements





Interface with Other Systems





OPERATIONAL AND QUALITY REQUIREMENTS

Operating Environment

These are list of operating environment from the system:
Windows XP operating system,
Database for its old system.
The system uses 3rd party to link 2 databases
The system will link it together through the use of XML, SQL etc.

Development Constraints

Need to consider about supporting third party (Java) system.
There is Timeline for task to be complete.
There is a limitation of ability in function.
Unable to debug the system.
Lack of resources about the system.
Might not work out the way it is expected to be.
System crash.
Performance of the system is not up to standard.

Performance

Peak hours 9 am – 11am
2 seconds for system speed (peak) 1 at off peak

Availability
24 hours

Security and Access Control Requirements

Uploading the photos must have sharing access control

Admin – full access in the system.
End user-Only when they upload their photos in the sharing community. Then others can view.

SPECIAL REQUIREMENTS

The system provides different themes flash.
The system provides different kind of banners.
The system provide RSS module.
The system is able to organize RSS module.
The system provides filtering function.
The system is able to do backup.
The system is able to customize themes.
The system is able to post announcements.
The system is able to send feedback from staff.
The system also provide shortcut to icons.
The system is able to upload text.
The system is able to download the text.
The system is able to upload video.
The system is able to download the video.

Thursday, January 24, 2008

SWEN interview with end-user(Jacob)

SWEN Interview 2 with End User(jacob)

The following are the data we collected from the interview with Jacob on tuesday.

Any particular feature to add?
Bookmarking(be able to create, delete, bookmarks, assign bookmarks, add keywords, bookmarks can be assigned to categories, bookmarks can belong to many categories, can be sharable, can be printed in different formats

What kind of data type to store for bookmark?
Bookmark name, tags, categories, date added, users who added this bookmark

Any problems wished to highlight?
When ant to print bookmarks, the printed copy doesn’t look like English(Make it printable, in some nice format)

Timeslot to go for training?
Minimum 3 days. For 900 stuff.(600 fulltime 300 part-time)
Timeslot depends.

For photo management, what format of data? JPEG,PNG,PIMP, all the other formats.

Number of RSS feeds?20-30 a day

Range of time for system used?24/7 a day

Peak hours speed?
Quite slow currently.2 seconds for system speed(peak)1 at off peak.

Does stuff have basic knowledge?
No.mixed amount.To conduct separate training for them.

What to have for user interface?
Something nice and good , colorful, easy to use.

Filtering system for photo management system?
No filtering system

Security features?
Allow viewing only if other person allows to see the photos.

What are the minimum pc requirement?
Windows XP

Uses single database for old system. Going to use 3rd party to link 2 database together.Use XML,SQL etc

Any other system to connect the system with?
Bookmarks should be downloadable to PDAs, photos need to be sorted, need to able to tag the photos

Usage on mobile devices?
Abit slow. Wants special browsers.

Need photos be sorted?
Sorted by date, time of project.

What type of users uses the system?
Managers, stuff like Jacob

Anything additional languages?
Needs hokkien for training.

Any special requirements?
Explain in hokkien, materials most probably in Chinese.

RSS feeds need to search?
Have search engine(search by keywords and forward)

RSS run on laptops/mobile devices?
Want RSS on them.

Is photo management/social bookmarking user-friendly?
Photo management not very user-friendly.

Additional featues like FAQ?
Everything in 3 clicks, mimimun.

What working time?
8-6.Ok if arrange training after 6.2 to 3 hours training. Fix qualified instructors to help along.

All stuff to attend training?
All need to go.

Kind of data formats?
Varchar, Block, whatever that are needed

System to be done offline?No

Thursday, January 17, 2008

Our interview with Peter

We interviewed Mr Chong's colleague Peter today. These what we interviewed:

What functions do you want in your system?

· RSS function, photo management, online bookmark management(basic features)

What exactly do you need/current system?

· Current is individual system

·Wants an integrated(combined) system

· want to provide training

·Target audience: staff

Platforms?

· Mobile devices, desktop, PDAs, smartphones

What Problems do you face in your current system?

  • no way to manage information

How are your current system working during peak hours?

· peak hours 9 am – 11am

Budget?

  • $25k

What kind of data requirements security?

· administrators, end users and managers restricted access to people.

  • restriction of photos, sharing of photos restricted.

· filtering system for photos

  • new system with features – photo-editing, upload photos from PDA, mobile devices, computer

  • Organizing photo by many categories.

Third-party

· depends on us

· Java(programming language)

Features

  • Photoshop features, photos to be shared across departments, business partners. Internet-based, 24-7. 3mbps
  • Interface must be user-friendly, within 3 clicks, 5 languages(English, Malay, mandarin, Tamil and hokkien)

· Access the system from anywhere.

· Downloadable to staff only.

  • Other features: different themes, flash, banners, RSS module, organize RSS module

· 600 staff. 3 days of training to 600 staff???! Different languages for training?

RSS:

· organizes categories

· store title of photo , name, category, date, time, dept owner, project owner.

  • Format of photos, .png, .jpeg, .gif

· RSS to store certain data: URL, category, date added

  • Text and video feeds

· Staff feedback about the system

· Shortcut to the system

Tuesday, January 15, 2008

Reference questions from the audio

Today Jx and I(yitian) have heard the audio from the OLE and these are the kind of questions the student had asked :

Reference questions:

1)What are the problems faced?
2)What do you think about the existing system manner?
3)You are not satisfied with it?
4)How many orders received each day?
5)How do the customers place orders?
6)In relation to the order system, what is the starting point and how many steps are involved?
7)Can all the users use the internet explorer as browser?
8)Which features are the least important in existing manner system?
9)You want a promotion offer to show online as well?
10)What kind of report you want?
11)How often the report does is being generated?
12)Would you like a menu on your new system to display the report?
13)You want to use SQL statements to extract and display tables?

We have noticed that is best to avoid technical terms because many users know nuts of such techincal terms

posted by : yitian

Learning Template PBL2

Post By LiSui

Problem Package 2

Problem package 2 starts!
According to the interview with the project manager, I have gathered these about gathering requirements.
Budgets are usually $150k to several million dollars
Requirement is what a system will do, a contract with users of the system and developers of the system.
Example: a library system allow user to borrow books, system that allow users to pay fines using credit card. A requirement is what a library system will do.
When collecting requirements: we have to capture requirements correctly and concisely, record all requirements correctly.
When creating requirements: identify system boundary and the external factors of the system.
When gathering, requirements change as the project move on.
Tips for requirements ;
1.Gather requirements in iteration/in stages.
2.Formal requirement sign-off from customers
· Stakeholders not agreeing in requirements: gather all the stakeholders in a room and make them come to an agreement.
Jenn

Wednesday, January 9, 2008

Type of prototyping

Throwaway prototyping
Throwaway or Rapid Prototyping refers to the creation of a model that will eventually be discarded rather than becoming part of the finally delivered software. After preliminary requirements gathering is accomplished, a simple working model of the system is constructed to visually show the users what their requirements may look like when they are implemented into a finished system.

Evolutionary prototyping
Evolutionary Prototyping (also known as breadboard prototyping) is quite different from Throwaway Prototyping. The main goal when using Evolutionary Prototyping is to build a very robust prototype in a structured manner and constantly refine it. "The reason for this is that the Evolutionary prototype, when built, forms the heart of the new system, and the improvements and further requirements will be built

Incremental prototyping
The final product is built as separate prototypes. At the end the separate prototypes are being merged in an overall design.

Tuesday, January 8, 2008

Updated SCRUM Model

In SCRUM, how many "iterative development cycles" can there be?

There can be typically a thirty day iterative cycle where risk and change are continually reassessed and readily managed for each iteration.

Can SCRUM be used for projects with small teams of <10 people?

Scrum is ideally for the use of small teams. An ideal estimation is that there should be no more then 10 people in a Scrum team doing the project.

What do you mean by "highest business value features"? Give examples.

Business values are the standard measure of value used in business valuation.It basically means that it would establishes a standard measure of value which are used to determine the worth of the business. Therefo,e a highest business features means that the software would have a very high value of business values when it is established.

Examples of In most software projects, they mostly start without its business value being clearly articulated. Therefore, it is a problem to decide whether they are a success from a business point of view. It is also difficult to decide when the project has completed. Therefore, business value provides a simple measure for determining when to stop a project. So, once the estimated cost of implementing any additional software is greater than the expected business value stated, the project should be stopped until additional value is discovered or the cost reduces.In this way,it ensures that the highest business value is achieved.

I not sure if this is the answer you are looking for,so feel free to give me comments.Thank you.

Done by : Jianxuan

Improvements on RUP




Discipline means Core workflows.
This is the essential part of workflows in the process

The following are the examples of discipline:

Engineering Disciplines:

1)Business Modeling
2)Requirements
3)Analysis and Design
4)Implementation
5)Test
6)Deployment

Supporting Disciplines:
7)Configuration and Change Management
8)Project Management
9)Environment

For example : Business modeling explains how to describe a vision of the organization in which the system will be deployed and how to then use this vision as a basis to outline the process, roles and responsibilities.

Requirements : The goal of the requirements discipline is to describe what the system should do and allows the developers and the customer to agree on that description. To achieve this, analysts elicit, organize, and document required functionality.

Question: what is iteration?

An iteration is a complete development loop resulting in a release(internal or external) of an executable product, a subset of the final product under development, which grows incrementally from iteration to iteration to become the final system.

Benefits of an iterative approach
Compared to the traditional waterfall process, the iterative process has the following advantages:
1)Risks are mitigated earlier
2)Change is more manageable
3)Higher level of reuse
4)The project team can learn along the way
5)Better overall quality

note: couldn't find proper answers on how risk is handled in RUP. These answers were roughly what i found but was not too sure if is correct.

done by: Yitian

Project Risks Plan


These are the categories and sub-categories of risks. I am not sure about the Requirements risks and Tools risks.
This is the process of risks handling and some strategies.

This is what I have done for the Project Risk Plan. There are the Business risk plan and process risk plan that I have not done. Yi Tian is also doing the risks on the process models, I am not sure whether she's doing the same thing as I am doing. I am also unsure about the Risk Monitoring section. Do I need to fill up every single box?
Jenn

Difference between Spiral and Prototyping Model

Difference between Spiral and Prototyping Model

Spiral
Follows the SDLC steps for each prototype
Documentation emphasis on system evolution
Structured



Prototyping
Developer directly analyses client feedback and modifies code
Documentation emphasis on final product
Free flowing


Why are there so many spirals in the spiral model?
Different project got different spirals as the process/steps are different.

Is the spiral model useful for Mr. Chong & Sonium?
Yes, using spirals model there is communication between developer and customer as Sonium need to remember customer’s needs and obtain customer feedback based on the evaluation of the software representation created during the engineering stage and implemented during the install stage


Risk in Spiral mode:

  • No cost effective quality improvement possible
  • Quality improvements may increase costs excessively
  • New methods might cause existing staff to leave

Risk handled in the Waterfall model

The client only gets to see the product at the very end of the deveoplment and if it is not what they want, it is too late. The problem is the huge gap between requirement analysis at an early stage in the project and acceptance testing near the end.



We can't go backwards in the waterfall model as it is a sequential software development model.
To overcome this drawback, waterfall provides for feedback to the immediately preceding steps and in reality, any step may necessitate changes in any of the preceding stages.


For example:

During system testing, architectural design fault is revealed
During user acceptance, a problem with the specification becomes evident

so the reality of the waterfall model is that development does not proceed linearly, step-by-step. Instead there is commonly frequent feedback to earier stages, requiring rework.


Difference between SDLC and software process (LiSui)

A software development process
is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.

Systems Development Life Cycle (SDLC) or sometimes just (SLC)
is defined by the U.S. Department of Justice (DoJ) as a software development process, although it is also a distinct process independent of software or other information technology considerations. It is used by a systems analyst to develop an information system, including requirements, validation, training, and user ownership through investigation, analysis, design, implementation, and maintenance. SDLC is also known as information systems development or application development. An SDLC should result in a high quality system that meets or exceeds customer expectations, within time and cost estimates, works effectively and efficiently in the current and planned information technology infrastructure, and is cheap to maintain and cost-effective to enhance. SDLC is a systematic approach to problem solving and is composed of several phases, each comprised of multiple steps:

  • The Software concept - identifies and defines a need for the new system
  • A requirements analysis - analyzes the information needs of the end users
  • The architectural design - creates a blueprint for the design with the necessary specifications for the hardware, software, people and data resources
  • Coding and debugging - creates and programs the final system
  • System testing - evaluates the system's actual functionality in relation to expected or intended functionality.

Prototyping (LiSui)

Prototyping
is the process of quickly putting together a working model (a prototype) in order to test various aspects of a design, illustrate ideas or features and gather early user feedback. Prototyping is often treated as an integral part of the system design process, where it is believed to reduce project risk and cost. Often one or more prototypes are made in a process of iterative and incremental development where each prototype is influenced by the performance of previous designs, in this way problems or deficiencies in design can be corrected. When the prototype is sufficiently refined and meets the functionality, robustness, manufacturability and other design goals, the product is ready for production.

Process of prototyping involves the following steps:
Identify basic requirements

Determine basic requirements including the input and output information desired. Details, such as security, can typically be ignored.

Develop Initial Prototype
The initial prototype is developed that includes only user interfaces.

Review
The customers, including end-users, examine the prototype and provide feedback on additions or changes.

Revise and Enhancing the Prototype
Using the feedback both the specifications and the prototype can be improved. Negotiation about what is within the scope of the contract/product may be necessary. If changes are introduced then a repeat of steps #3 ands #4 may be needed.

Advantages of prototyping

May provide the proof of concept necessary to attract funding

Early visibility of the prototype gives users an idea of what the final system looks like

Encourages active participation among users and producer

Enables a higher output for user

Cost effective (Development costs reduced)

Increases system development speed

Assists to identify any problems with the efficacy of earlier design, requirements analysis and coding activities

Helps to refine the potential risks associated with the delivery of the system being developed

Disadvantages of prototyping

User’s expectation on prototype may be above its performance[clarify]

Possibility of causing systems to be left unfinished[citation needed]

Possibility of implementing systems before they are ready.[clarify]

Producer might produce a system inadequate for overall organization needs

Producer might get too attached to it (might cause legal involvement)[verification needed]

Often lack flexibility[citation needed]

Not suitable for large applications

Project management difficulties[verification needed]

Type of prototyping:

Agile Software Developement



Agile software development is a conceptual framework for software engineering that promotes development iterations throughout the life-cycle of the project.

There are many agile development methods; most minimize risk by developing software in short amount of time. Software developed during one unit of time is referred to as an iteration, which may last from one to four weeks. Each iteration is an entire software project, including planning, requirements analysis, design, coding, testing, and documentation. An iteration may not add enough functionality to warrant releasing the product to market but the goal is to have an available release (without bugs) at the end of each iteration. At the end of each iteration, the team re-evaluates project priorities.

Agile methods emphasize face-to-face communication over written documents. Most agile teams are located in a single open office sometimes referred to as a bullpen. At a minimum, this includes programmers and their customers. The office may have testers, interaction designers, technical writers and managers.

Agile methods also emphasize working software as the primary measure of progress. Combined with the preference for face-to-face communication, agile methods produce very written documentation relative to other methods.

Advantages of using Agile

Agile approaches are good when your requirements are uncertain. In this case, agile processes may be uncomfortable, but will be more effective. By embracing the change and planning for it, agile processes lower this risk.

most project plans that imply a guaranteed delivery date, cost, and functionality are either wrong, heavily padded, or both. Agile processes open up the current status of the project to a point that all stakeholders can see the current state of the project at any point in time through running the latest version of the code.

Market pressure is an important factor when assessing the business value of using agile methods. Time to market can be the decisive factor for the success of a project. Under strong market pressure, a delay of the project completion leads to a loss of market share, which drastically decreases the business value of the project. As market pressure increases, the productivity advantages required strongly encourage choosing an agile process.

A dynamic and ever-changing set of requirements may cause upper management to fear that a project will never be completed. When told that the project will continue as long as the customer identifies high-priority, high-value work, management becomes uncomfortable. Most decision makers like a model in which project budgets are approved and the project remains within the budget confines. However, with agile methods, management can release to production whenever they are ready because with each iteration, the code base has a higher value and is generally more stable than the previous version. Thus, since management sets the priorities, they have complete control of when the project is finished.

Disadvantages of agile



One problem the development team may encounter is when a team member likes to create the process artifacts more than code. The other people on the team will quickly assess the value of these activities and will not adopt them if they do not support the overall development effort.


Done by Jing Jie




SCRUM Models

SCRUM Process Models

The SCRUM process model is an agile and lightweight process which is used to manage and control software and product development using iterative, incremental practices. The term “scrum” comes from the rugby, where its definition is getting the ball back into the field of play. Everybody in the pack acts together with each other to move the ball down the field.As for the case in software development, it mainly refers to the organization and its management technique which is being used to successfully deliver its end-software in a chaotic environment.
The SCRUM approach assumes that its baselines will change very much during the project implementation. In an environment where things are uncertain, empirical methods are used to monitor progress and changes, rather than the use of definitive methods in an attempt to predict its progress and stop changes.It also looks forward to changes which are made, as this means the end result and product will be one which is more closely catered to the customer's needs at the end of development. But SCRUM is not, without its own structure and control mechanisms.

There are 2 main principles for SCRUM:
-Iterative Development: The project deliverables are built over several iterative development cycles, which each cycle each adding additional features onto the product, and each would then result in demonstratable results like writing codes which are working, written documentation and viewable designs etc.

-Team Empowerment: This means that the project team would divide itself into self-managing multi-function units called Sprint Teams. In most cases, each team consists of around seven or eight people. The team is empowered to use any development methods or tools which they think would help them deliver the deliverables.

In SCRUM, these are the following main points:
-A product backlog of which work being priortised are to be done first;
-The completion of a fixed set of backlog items which would be in a series of short iterations or sprints.
-A brief daily meeting or scrum, in which progress on the project is explained, upcoming work is explained and impediments are raised upon.
-A brief sprint planning session whereby the backlog items for the sprint will be defined and explained.


A brief sprint retrospective, in which all team members would reflect ont the past sprint.
The Scrum process is led by a ScrumMaster, whose main job is to remove impediments to the ability of the team in order to deliver the sprint goal. The ScrumMaster is not the leader of the team but is a medium between the team and distracting influences.
Scrum would enable the creation of self-organizing teams as it encourage the co-location of all team members and also verbal communication across all team members and disciplines who are involved in doing the project.


The key principle of Scrum is that during a project the clients can change their minds about their needsr, and that fundamentally empirical challenges cannot be addressed successfully in a traditional predictive or planned manner. Therefore, Scrum adopts an empirical approach and this means accepting that the problem cant be fully understood or defined and would instead focus i on maximizing the team's ability to deliver efficiently and respond to emerging requirements.

Main stages/roles in SCRUM:
Product owner: Direct the product, sprint by sprint, to provide the greatest ROI and value to the organization. Also manages ROI through priority and release plans and is the only sole owner of the product backlog. They also set development schedule by prioritizing backlog.The allocating of one person in this role would ensure that only one set of requirements drives development. These requirements can be easily influenced by committees, management, customers, but the owner is the only person that prioritizes. The product owner can also eliminate confusion of multiple bosses, different opinions, and interference.

-SCRUM Master: One person would take on the role of ScrumMaster to see the team on a day to day basis. The ScrumMaster doesn't need to do anything else because just the workload of ScrumMaster is a full time job.He/she is responsible to make sure that a Scrum team lives by the values and practices of Scrum. The ScrumMaster also protects the team from aggressive customers by making sure they do not over commit themselves to what is their extent which they can achieve during a sprint. The ScrumMaster also facilitates the daily scrum and is responsible for removing any obstacles that are brought up by the team during meetings. The ScrumMaster role is mostly taken by a project manager or a technical team leader it can be likewise.

-The sprint: It is a fixed period to develop a deliverable product increment. It is time boxed and it is more important to fall short than to slip the date. The Sprint would includes the designing, coding, testing, and documentation of codes. Once a Sprint has started, only the Scrum Team can add or remove items in Sprint backlog. Abnormal termination of Sprint is needed when the Sprint Goal no longer makes any real sense. A Special Release Sprint -- Releasing software to production would require a special sprint known as the “Release Sprint” Like any other sprint; the release sprint team is dedicated ONLY to releasing the software during that period of time It is used to package software, final regression tests, move through the various environments and release to production. This can be made up of a subset of team members who are from the original development sprints.

-The sprint planning meeting: This is when the product Owner would describe highest priority features to the team, and the team would then decide what they can commit to delivering in the Sprint. This occurs within two consecutive meetings whereby the goal is set and the team plans the tasks to create the Sprint Backlog.

-The daily SCRUM: This is a daily 15 minute status meeting held in the same place and time every day. Each team member will address the following three questions.1. What have you done since the last Scrum?2. What will you do between now and the next Scrum?3. What got in your way of doing work?

-The sprint review meetings: At the end of each sprint ,this is held. During this , the Scrum team would demonstrate what they completed during the sprint phase. Mostly ,this is in then form of a demo. Participants in the meeting include but are not limited to the Product Owner, the Scrum team, the ScrumMaster, management, customers, and engineers from other projects. During this meeting the project is compared to the sprint goal determined during the Sprint planning meeting. Optimally, the team has completed each product backlog item brought into the sprint, but however it is more critical that they accomplish the goal of the sprint.

-Sprint retrospective: This is facilitated by the ScrumMaster, this meeting discusses the just concluded Sprint and then determines what could be changed that might make the next Sprint more fun and productive. The Sprint Review also looks at what the team are building whereas the Retrospective looks at they are building towards to. Any factors that affects how the team builds software is also open for discussion such as the processes, practices, communication, environment, and tools.Scrum should be seen as a framework that should be adapted appropriately for any given project, team and specific situations. The Sprint retrospective is a critical that allows a team to continuously improve through the life of the project itself.

-Product backlog and sprint backlog: Product backlog and sprint backlog
A backlog is the list of prioritized items that are to be developed for a software product. The product backlog is maintained by the Product Owner and is actually a list of requirements that are from the client. The sprint backlog is the Team's interpretation of the product backlog and would contains concrete tasks which will be be done during the next sprint to implement some of the top items in the product backlog. The product and sprint backlogs are therefore two totally different things in these cases.


-Sprint planning: Prior to every sprint the Product Owner, the Scrum Master and the Team will have to make a decision on what the team will work on during the next sprint. The Product Owner maintains a prioritized list of backlog items, the product backlog in which that can be reprioritized during sprint planning. The Team selects items from the top of the product backlog. They would select only as much work as they can be committed to finishing. The Team then plans the architecture and design of how the product backlog which could be implemented. The product backlog items are then broken down into smaller tasks that become the sprint backlog.


Advantages:
-Delivers the highest business value features first and will always look to try and avoid building unrealistic features. Industry data shows that about half of the software features developed are never used, therefore, development can be completed in half the time by avoiding doing the unnecessary work.
-Development are very often slowed down by issues like impediments during the daily meetings or planning and review meetings. Using Scrum, these issues are prioritized and taken away, increasing effectiveness and quality output.

-Removes management pressure from teams as teams are allowed to select their own work, and then self-organize them through close communication and mutual agreement within the team on how to accomplish the work in a best possible way.

Disadvantages:
-Scrum is a team-based approach ,so if members of the team do not cooperate,the project would not be a success.
-Needs feedback from its clients on the deliveries,therefore it requires a lot of customer involvement.

Done by: Jianxuan

Monday, January 7, 2008

Rational Unified Process (RUP) Model

is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003.

RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs.
The Rational Unified Process is also a software process product, originally developed by Rational Software, and now available from IBM. The product includes a hyperlinked knowledge base with sample artifacts and detailed descriptions for many different types of activities. RUP is included in the IBM Rational Method Composer (RMC) product which allows customization of the process.

The Unified Process was designed from the start to include both a generic, public domain process (known as the Unified Process), and a more detailed specification known as the Rational Unified Process which could be marketed as a commercial product.

four phases:
-Inception
-Elaboration
-Construction
-Transition

Done By lisui

Limitation


If the users of RUP do not understand that RUP is a process framework, they may perceive it as a weighty and expensive process. It was not intended, not envisioned and not promoted to be used straight “out of the box”. As the RUP must be customized for each project by a RUP process expert, the project’s overall success is highly dependent on the abilities of this one person.

Benefits

Rational Unified Process captures many of modern software development’ best practices to suit a wide range of project and organizations:

Develop software iteratively: Plan increments of the system based on customer priorities and develop and deliver the highest priority system features early in the development process.

Manage requirements: Explicitly document the customer’s requirements and keep track of changes to these requirements.Analyse the impact of changes on the system before accepting them.

Use component-based architecture: Structure the system architecture into components

Visually model software: Use graphical UML models to present static and dynamic views of the software.


Verify software quality: Ensure that the software meets the organizational quality standards

Control changes to software: Manage changes to the software using a change management system and configuration management procedures and tools.

Done By YiTian

Learning Template Post by Li Sui



Rapid application development (RAD) Model






is a software development process developed initially by James Martin in 1991. The methodology involves iterative development, and the construction of prototypes. Traditionally the rapid application development approach involves compromises in usability, features, and/or execution speed. It is described as a process through which the development cycle of an application is expedited. Rapid Application Development thus enables quality products to be developed faster, saving valuable resources.




Steps/Process



1. Requirements Planning
The Requirements Planning stage consists of a review of the areas immediately associated with the proposed system. This review produces a broad definition of the system requirements in terms of the functions the system will support.
The deliverables from the Requirements Planning stage include an outline system area model (entity and process models) of the area under study, a definition of the system's scope, and a cost justification for the new system.



2. User Design
The User Design stage consists of a detailed analysis of the business activities related to the proposed system. Key users, meeting in workshops, decompose business functions and define entity types associated with the system. They complete the analysis by creating action diagrams defining the interactions between processes and data. Following the analysis, the design of the system is outlined. System procedures are designed, and preliminary layouts of screens are developed. Prototypes of critical procedures are built and reviewed. A plan for implementing the system is prepared.



3. Construction
In the Construction stage, a small team of developers, working directly with users, finalizes the design and builds the system. The software construction process consists of a series of "design-and-build" steps in which the users have the opportunity to fine-tune the requirements and review the resulting software implementation. This stage also includes preparing for the cutover to production.
In addition to the tested software, Construction stage deliverables include documentation and instructions necessary to operate the new application, and routines and procedures needed to put the system into operation.



4. Implementation
The implementation stage involves implementing the new system and managing the change from the old system environment to the new one. This may include implementing bridges between existing and new systems, converting data, and training users. User acceptance is the end point of the implementation stage.




Pros and Cons of RAD



Pros



Increased speed of development through methods including rapid prototyping, virtualization of system related routines, and other techniques.



Decreased end-user functionality (arising from narrower design focus), hence reduced complexity



Larger emphasis on simplicity and usability of GUI design



Cons



Reduced Scalability, and reduced features when a RAD developed application starts as a prototype and evolves into a finished application



Reduced features occur due to time boxing when features are pushed to later versions in order to finish a release in a short amount of time



The data needed should already be existing




Spiral model



is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model, it is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive and complicated projects.


The spiral model, also known as the spiral lifecycle model, is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive, and complicated projects.



Steps:

The aim of customer communication is to establish effective communication between developer and customer.
The planning objectives are to define resources, project alternatives, time lines and other project related information.
The purpose of the risk analysis phase is to assess both technical and management risks. The engineering task is to build one or more representations of the application.
The construction and release task – to construct, test, install and provide user support (e.g., documentation and training).
The customer evaluation task - to obtain customer feedback based on the evaluation of the software representation created during the engineering stage and implemented during the install stage.
Advantages
Software is produced early in the software life cycle.
High amount of risk analysis
Good for large and mission-critical projects.
Disadvantages
Doesn't work well for smaller projects.
Can be a costly model to use.
Risk analysis requires highly specific expertise.
Project's success is highly dependent on the risk analysis phase.
Done by LiSui, 7/01/2008

A software development process

A software development process
is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.

Steps of Software development Process:

Requirements Analysis
Extracting the requirements of a desired software product is the first task in creating it. While customers probably believe they know what the software is to do, it may require skill and experience in software engineering to recognize incomplete, ambiguous or contradictory requirements.

Specification
Specification is the task of precisely describing the software to be written, in a mathematically rigorous way. In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development. Specifications are most important for external interfaces that must remain stable.

Software architecture
The architecture of a software system refers to an abstract representation of that system. Architecture is concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed.

Implementation
Reducing a design to code may be the most obvious part of the software engineering job, but it is not necessarily the largest portion.

Testing
Testing of parts of software, especially where code by two different engineers must work together, falls to the software engineer.

Documentation
An important task is documenting the internal design of software for the purpose of future maintenance and enhancement.

Training and Support
A large percentage of software projects fail because the developers fail to realize that it doesn't matter how much time and planning a development team puts into creating software if nobody in an organization ends up using it. People are occasionally resistant to change and avoid venturing into an unfamiliar area, so as a part of the deployment phase, its very important to have training classes for the most enthusiastic software users (build excitement and confidence), shifting the training towards the neutral users intermixed with the avid supporters, and finally incorporate the rest of the organization into adopting the new software. Users will have lots of questions and software problems which leads to the next phase of software.

Maintenance
Maintaining and enhancing software to cope with newly discovered problems or new requirements can take far more time than the initial development of the software. Not only may it be necessary to add code that does not fit the original design but just determining how software works at some point after it is completed may require significant effort by a software engineer. About 60% of all software engineering work is maintenance, but this statistic can be misleading. A small part of that is fixing bugs. Most maintenance is extending systems to do new things, which in many ways can be considered new work.

Done by LiSui, 4/01/2008

Risk Management drafts

Its been a week since we started our project. After Mr Nalaka issued our tasks, we went on to research on Software Engineering. Each of us used the Internet, school library books and public libraries as our research tools. Today, we used our research and picked out the most useful parts that is needed for our presentation. I am doing the part on Risk Management, and drafted these:
Each are for Project, Product and Business respectively.
Thats all for the drafts, will update the filled drafts.
Jenn

WELCOME

HI all.

This is our Blog for our Software Engineering Assignment
Do visit often for latest update.
Thx alot.
=)