30.12.08

Task 1

Importance of Software Engineering in Software Development.

In most systems, software is the overriding component in terms of cost and complexity. Good software engineering practices and tools can therefore make a substantial difference, even to the extent that they may be the driving force of the project success.

The term of Software Engineeing first appeared in the 1968 NATO Software Engineering Conference and was meant to provoke thought regarding the current "software crisis" at the time.[1]

Software engineering is concerned with "creating high-quality software systems in an efficient and predictable manner" — without firm definitions of what high-quality, efficient and predictable mean. The results of the study of software engineering are heuristics for success that ought to work, most of the time, if nothing unusual happens. The methods of the field include empirical learning, policies and procedures, and people skills. [2]

In short, Software Engineering helps in creating software that is of higher quality, cheaper, maintainable, and quicker to build.



Software Engineering will provide:

  • Quality assurance for a software.
    It sets the acceptable minimum level of quality of a software. By other words, it will assure that the softwares will be above the minimum acceptable standards.
  • Productivity.
    Increases the productivity of a particular software development project. For example, it will help a programmer to write more lines of codes.
  • Tools.
    Software Engineering provides tools for developers to develope softwares such as CASE Tools and Project Manangement. This will help to manage the development work.
  • Methods.
    Provides various methods for the developers that will help to improve the productivity and make the development more efficient and effective. Examples of methods that Software Engineering provides are Requirements Engineering, Software Design, Coding, Software Testing, Software Reverse Engineering, Software Re-engineering, Software Profiling, Software Performance Tuning, Code Generation, Software Project Management, Software Risk Management, Software Reuse, Software Configuration Management and so on. [3]
    Though by the fact above proven that Software Engineering can help in Software Development, some people, including professionals consider Software Engineering to be unhelpful, even useless. Thus, there are not much articles published about the importance of Software Engineering.

But software engineering is not useless. In fact, it may be more worthy of serious study than some traditional computer science topics. Software engineering is not useless for three reasons:

  • Software engineering is simply at an early stage of development.
  • Software engineering happens to be hard.
  • The gains to be had from any new knowledge about this subject are huge.

Continuing on Software Development without adopting Software Engineering will cause lots of problems (not considering that there are various problems in Software Development alone) such as:

  • There will be no standards for minimum acceptable quality for softwares. Thus alot of low quality softwares will float around.
  • Slow productivity of the softwares.
  • There will be no specific tools for the developers to use to develope quality softwares for the end-users.
  • No existence of methods for the developers to use to improve their productivity.

Not to say that Software Engineering can 100% hinder the problems in Software Development, but at least in can reduce those problems. We will forsee the problems in Software Development right after.



------------------------------------------------------------------


Software Development Problems.


In developing softwares, software developers will face a huge pile of problems. To make is worse, some developers do not even recognize the problem until the last stage of development, even after distributing the software.

There are many symptoms that can be seen that indicate the problems in software development such as inaccurate understanding of end-user needs, inability to deal with changing requirements, modules that do not fit together, software that's hard to maintain or extend, late discovery of serious projects flaws, poor software quality, unacceptable software performance, team members in each other's way, and there is an untrustworthy build and release process. [4]

By looking at these indicated symptoms, developers should know that the Software Development has problems. One of the major problem in Software Development is users are not very clear in regards to their exact needs. Most of the specifications given to Software Development Outsourcing vendors are rough and very sketchy. This will lead to misinterpretation of customer commucations, thus will drive the developers to produce softwares that do not fulfill the customers’ needs.

That is not all, other problems in Software Development are :

  • Due to some problematic ambiguities Offshore Software Outsourcing service provider are not in good position to understand the better scope of development work. [5]
  • Error in Data Representation.
  • Problem in translating programming language, or called Programming Language Translation. For example, translating from C++ Programming Language to Java. [3]


------------------------------------------------------------------



How Can Software Engineering Help Solve Software Development Problems.

By now we know the importance of Software Engineering and Problems in Software Development. By combining these two facts together, we will know that Software Engineering can definitely solve problems in Software Development.

This is proven by the fact that Software Engineering provides tools and methods for the developer to use in developing software thus will help solving the problems.

Let us look in depth in this matter:

  • It is been said that the main problem of Software Development is incomplete or erroneous specification given by the customers and this leads to misinterpretation of customers’ needs. Software Engineering provides methods, one of them that can be related to this problem is Requirement Engineering; it is the process by which the requirements for softwares are gathered, analyzed, documented, and managed throughout the SE lifecycle. By this, the developer will look closely in the requirement stage, including to fully understand the customers’ needs. This will prevent the misinterpretation to be happened. [3]

  • Another problem in Software development is Programming Language Translation. Any developer will face this problem when they plan to move from one programming language to another, let’s say from C++ to Java. Without tools, this work is tideos and of course will cause problems. But in Software Engineering, we have tools and methods for this matter. The developers can use one of the CASE tools to solve this, for example.

In conclusion, Software Engineering definitely play a very important role in Software Development, either in solving problems of preventing them.



------------------------------------------------------------------



References

  1. Wikipedia : Software Engineering. http://en.wikipedia.org/wiki/Software_engineering

  2. Pierre Bourque and Robert Dupuis, ed. (2004). Guide to the Software Engineering Body of Knowledge - 2004 Version. ISBN
  3. 0-7695-2330-7.

  4. Lecture Slide of CSEB233 Sem 2 2008/2009. By Prof. Khairuddin.

  5. Symptoms of software development problems. http://www.devdaily.com/java/java_oo/node6.shtml

  6. Common Problem in Software Development Outsourcing. http://www.outsourcing-weblog.com/50226711/common_problems_in_software_development_outsourcing.php

1.12.08

Task 2

CASE TOOL - Microsoft Project

Microsoft Project is a project management software program developed and sold by Microsoft which is designed to assist project managers in developing plans, assigning resources to tasks, tracking progress, managing budgets and analyzing workloads. The first version of Microsoft Project was released for DOS in 1984 by a company working for Microsoft. Microsoft bought all rights to the software in 1985 and released version 2. Version 3 for DOS was released in 1986. Version 4 for DOS was the final DOS version, released in 1986. The first Windows version was released in 1990, and was labelled version 1 for Windows. An interesting thing to note is that the first version for DOS introduced the concept of link lines (dependency lines) between tasks in the Gantt chart.

Microsoft Project was the company's third Windows-based application, and within a couple of years of its introduction WinProj was the dominant PC-based project management software. Although branded as a member of the Microsoft Office family, it has never been included in any of the Office suites. It is available currently in two editions, Standard and Professional.

A Macintosh version was released in July 1991 and development continued through Project 4.0 for Mac in 1993. In 1994, Microsoft stopped development of most of its Mac applications and did not offer a new version of Office until 1998, after the creation of the new Microsoft Macintosh Business Unit the year prior. The MacBU never released an updated version of Project, and the prior version from 1993 does not run natively on Mac OS X.

Further versions were released in 1992 (v3), 1993 (v4), 1995, 1998, 2000, 2002, 2003 and 2007. There was no Version 2 on either platform; the original design spec was augmented with the addition of macro capabilities and the extra work required to support a macro language pushed the development schedule out to early 1992 (Version 3).

The application creates critical path schedules, although critical chain and event chain methodology third-party add-ons are available. Schedules can be resource leveled, and chains are visualized in a Gantt chart. Additionally, Project can recognize different classes of users. These different classes of users can have differing access levels to projects, views, and other data. Custom objects such as calendars, views, tables, filters and fields are stored in an enterprise global which is shared by all users.

Microsoft Project and Project Server are the cornerstones of the Microsoft Office Enterprise Project Management (EPM) product. Microsoft has revealed that the next version of Microsoft Project will be featuring the Fluent user interface.

The Advantages

  1. Effectively manage and understand project schedules

    Set realistic expectations with project teams, management, and customers using Office Project to build schedules, allocate resources, and manage budgets. Understand the schedule with features such as Task Drivers for tracing the source of issues, Multiple Level Undo for testing scenarios, and Visual Cell Highlighting for automatically shading the tasks affected by a change.




  2. Get productive quickly

    The Project Guide, an interactive step-by-step planning aide, helps you quickly master the project management process. Customizable for different methodologies, this tool walks you through creating a project, assigning tasks and resources, tracking and analyzing data, and reporting results. Intuitive toolbars, menus, and other features enable you to quickly master project management fundamentals.


  3. Leverage existing data

    Office Project integrates smoothly with other Microsoft Office system programs. Build projects with a few keystrokes by converting existing task lists in Microsoft Office Excel and Microsoft Office Outlook into project plans. Resources can be added to projects from Microsoft Active Directory or from a Microsoft Exchange Server address book.


  4. Build professional charts and diagrams

    Analyze and report Project data in professional reports and charts by using the Visual Reports engine, which generates templates for Visio diagrams and Excel charts based on Project data. You can share templates you build with other users. Or you can choose from a list of customizable, ready-to-use report templates.


  5. Effectively communicate information

    Easily present information in various formats according to the needs of stakeholders. You can format and print one-page schedules or other reports. Use the Copy Picture to Office Wizard to smoothly export Project data into Microsoft Office Word for formal documents, Office Excel 2007 for custom charts or spreadsheets, or Microsoft Office PowerPoint for crisp presentations.


  6. Gain greater control of resources and finances

    With Office Project, you can easily assign resources to tasks and adjust their assignments to resolve conflicts over allocations. Control finances by assigning budgets to projects and programs. Improve your cost estimates with Cost Resources.


  7. Quickly access the information you need

    You can group Project data by any predefined or custom field. This saves you time by consolidating data so you can quickly locate and analyze specific information. Easily identify changes between different versions of a project—thus, efficiently tracking scope and schedule changes.


  8. Track projects according to your needs

    A rich set of predefined or custom metrics helps you track data (percent complete, budget versus actual, earned value, and the like) relevant to your needs. You can track project performance over the project lifespan by saving project snapshots in up to 11 baselines.

  9. Customize Office Project 2007 to your needs
    Tailor Office Project specifically to your project. Choose custom display fields that integrate with your project schedule. Modify toolbars, formulas, graphical indicators, and reports. XML, Microsoft Visual Basic for Applications (VBA), and Component Object Model (COM) add-ins facilitate data sharing and creation of custom solutions.

  10. Get Office Project assistance when you need it
    Office Project provides a wealth of assistance to novice and experienced users. It includes a robust Help search engine, smart tags, and wizards. Further enhancements include online access (requires Internet connection) to training courses, templates, articles, and more.


Features description

Project creates budgets based on assignment work and resource rates. As resources are assigned to tasks and assignment work estimated, the program calculates the cost equals the work times the rate, which rolls up to the task level and then to any summary tasks and finally to the project level. Resource definitions (people, equipment and materials) can be shared between projects using a shared resource pool. Each resource can have its own calendar, which defines what days and shifts a resource is available. Resource rates are used to calculate resource assignment costs which are rolled up and summarized at the resource level. Each resource can be assigned to multiple tasks in multiple plans and each task can be assigned multiple resources, and the application schedules task work based on the resource availability as defined in the resource calendars. All resources can be defined in an enterprise-wide resource pool.
MS Project presumes additional physical raw materials are always available without limit. Therefore it cannot determine how many finished products can be produced with a given amount of raw materials. This makes MS Project unsuitable for solving problems of available materials constrained production. Additional software is necessary to manage a complex facility that produces physical goods.
The advance that MS Project has over other software is the fact that most companies use Microsoft Windows® based infrastructure. Also many software such as Enterprise Project and
eLabor has integrated themselves onto the MS Project.



Support for collaboration: The integration of the MS Project and MS Central front enable all the involve member to access the project using the Internet. This speed up the process for the members making the report of the project status to the manger, and vice-versa. Factors such as time and location become a minor consideration for the members. Manager will be able to view reports from the internet, have more control of the project which lead to more synergistic planning and more informed decisionmaking. Changes to the schedules and tasks can also be make faster and information dissipte more quickly. Members also will have greater flexibilities in hours need to do their tasks. Each member also has their own personal Gantt Chart.


Portfolio view: Using MS Project Central portfolio view, multiple projects can be viewed simultaneously. This enables better understand how changes in one project can affect other projects members might be working on.


Task linking: For manager, who handles very highly complex interdependent multi-tasks, this capability will prove very useful. A delay in one task will be distinctly shown, it affect on the other tasks will also be highlighted. A manager will be able to make any adjustment needed and see if the changes are sufficient to makeup for the delay.


Resource pooling: An example for this functionality is the ability to support multiple billing rates. This is especially useful in the analyze phase for the manager to make a cost-benefit proposal. Manager is able to calculate the total cost of the project using the different rates for the different resources.


Primavera SureTrak Project Manager:
It is one of the three main PM software that are widely used today.


Project KickStartTM:
It is the main feature of the SureTrak that people widely used. It is a menu driven 8 steps interface that provides the basic or brainstorming and foreseeing problems. Users will define project phases, clarify goals, establish goals, anticipate obstacles, and delegate assignments.


Variable Timescale: feature lets users zoom in on a portion of the project timescale. This enable the user to select and zoom into certain duration (days) of the plan and still allowed the compressed view of the rest of the plan (weeks) both before and after the selection duration. The display can also be formatted to view a selected month in days and other in weeks. Pert Timescale is also used to give a better look at the sequence of interrelated tasks. With the Trace Logic window, the effect of changes such as delay on the project can be seen.


Better display for the activity attributes: Using the different patterns and color for the different activity attributes, project managers can clearly show the valuable project details and status for analysis. This is much easier to communicate than to have all the detail in words and numbers.

Users will be able to analyze the resource availability, produce a better report with better graphical representation of the summarizing activities based on phase, location, responsibility, resource, and other customizable codes.


Customization of reports and layout: The output can be customized to display the different color for the different day and to show a clear distance in each phase. Layouts and reports can be saved as HTML for web publishing and allow members to view on the Internet.


IMSI TurboProject:
is one of the projects that are compatible with the Microsoft Project products. This major feature has been one of the major selling points for the software.


Compatible with MS products: The ability to work with the MS Project .MPD files allow the sharing of the project information with the users of the MS Project.


Data can be exported directly to Microsoft excel:
Since TurboProject is closely integrated with the Microsoft Product; many features that are commonly in MS are applicable to TurboProject too. The major function is that data can be exported directly to MS Excel. The output can be formatted to graphical display such as tables, bars, profiles, and spreadsheets.


Varieties of templates for data to be exported in HTML: There are many preformatted templates available for the Layouts and reports in TurboProject to be published, and exported in HTML. The data can be published on the internal intranet or Internet for the client to view the progress too. Users can upload, distribute, view, print, and share project files with entire team via the Internet, regardless of whether they have the software.


Resource Usage View: There are 51 curves of different patterns available as tools for the users to represent the each resource in the Resource Usage View. Resources can be grouped by hierarchy and criteria such as department, category, skill, and job description. Using the Gantt pane, the spreadsheet will show what resources are assigned to that activity and the detail of that activity. Users will have the capability to evaluate if the resource allocated is appropriate for that task or not.


Comparison Using MS Project And Without Using MS Project

Although it is not the best option for the beginners, Microsoft offers a best overall value, especially for users of its Office suite who are familiar with the menu structure and appearance. It also offers a richer set of Web-based remote access features. The graphical indicators can take the place of data for spotting potential problems. The greater collaboration will enable a better teamwork and analyze the problem. Members can participate in the discussion with all the different views shared simultaneously. Network diagram which is an improvement of PERT chart, will enable new filtering and layout option. With the use of Gantt chart, it can show each member's chart or multiple members' on each project. MS Project is a very powerful PM software which pack many tools compared to others allowing for flexible analysis by; allow the creation of task specific calendar, deadline will be indicate if the task will not be finish on time, resource sheet allow better manage of different resources in a task, Work Breakdown Structure (WBS) is a collection of codes that corresponds to the hierarchical structure for the tasks in a project, and Contour Resource Availability which defining the available unit over times for resource group.


The SureTrak's extensive use of wizards makes it moderately easier to learn than MS Project. It is design more as an entry level for the users to the project management software. The wizard helps to provide a framework for brainstorming and problem identification. The PERT view allow for easier modification to the workflow. The integrated scalability should most appeal to large organizations that do not want to implementation a large scale PM software. However, SureTrak does not have as many powerful tools as MS Project. Most of the tools in SureTrak are menu driven so it is easier to navigate but lack the ability to be flexible.


TurboProject compare to other non-MS PM software has the advantage of the ability to exchange data with MS Project. Its main selling point is the 51 patterns for the resources compared to 24 that MS Project offered. This allow for better analysis of the resources use for each task and detail of that activity. Users are able to analyze the cost-benefit easier for that task. It seems that TurboProject put much effort into making their 51 lines their competitive advantage. To make using the curves easier, curve templates can be selected from the dropdown list in the Property Templates toolbar. However, one draw back for this software is that the project can not schedule in units as small as hours


Enhancements

In later versions of Microsoft Office, Microsoft Project's capabilities were extended with the introduction of Microsoft Office Project Server and Microsoft Project Web Access. Project Server stores Project data in a central SQL-based database, allowing users to display and update this data over the Internet. Web Access allows authorized users to access a Project Server database across the Internet, and includes timesheets, graphical analysis of resource workloads, and administrative tools.
Microsoft Office Project Server 2007 is tightly integrated with Windows SharePoint Services, for each project is created in Project Workspace where the team members can share information related to Project.
As the software operates as part of the Microsoft Office suite, the later versions also provide for cross-functionality with products like PowerPoint and Visio.


Understand and control project schedules and finances

Effectively track and analyze projects with a better understanding of the schedule and impact of changes. Benefit from better financial control and richer analytics.

  • Quickly determine factors that are affecting task dates and easily trace the source of issues to promote accountability. Task Drivers help you determine the factor (such as task dependency, calendar constraints, schedule date, or vacation time) driving the start date of the task, so you can follow a chain of factors back to find the root cause of a particular delay.
  • It will automatically highlight all items that shift as a result of the most recent change you make.
  • Undo and redo changes to views, data, and options with Multiple Level Undo. You can undo actions or sets of actions from macros too, so you can test several what-if scenarios in order to fully understand the implications of each choice while making scope changes.


With Multiple Level Undo you can safely experiment with various what-if scenarios.

  • With the budget field, you can assign budgets to projects and programs. The new "Cost" resource type improves cost estimation and tracking. Other cost enhancements include more predefined fields, such as cost code, that map to financial fields tracked in project accounting systems.
  • Flexible project tracking and analysis. Compute and track core metrics unique to your project by defining custom fields based on your formulas. Graphical indicators can alert you when specific conditions are met.


Effectively communicate and present project information

Improve the organization of your projects and people with the scheduling power and capabilities of Office Project. Easily report and communicate information in various formats according to the needs of stakeholders.

Visual Reports creates templates in Excel or Visio Professional. View a larger image.


Background Cell Highlighting.

Get productive quickly

Office Project helps you better organize work and people to help ensure projects are delivered on time and within budget.

The Gantt view with the Project Guide Tasks pane showing on the left.