Essay Doctorate 3,234 words

Explosive Impacts of Computer and Information Technology

Last reviewed: March 7, 2013 ~17 min read
Abstract

The paper provides literature reviews on software engineering. The paper identifies document engineering as an important aspect of software engineering profession that assists professionals to deliver a complete software project. Despite the importance of documentation, software developers are still reluctant to produce project document because it is generally being viewed as a waste of time.

Explosive impacts of computer and information technology on business and individuals have generated a need to design and develop new computer and software system to incorporate a rapid growing range of computer applications. Software engineers apply the software engineering principles and techniques to design, evaluate, test and implement software systems to enable computer to perform different applications. Software engineers use systematic and quantified approach to design, evaluate, implement software and provide maintenance for software. In other word, software engineering systems use sound engineering principles to design economical and reliable software for business and individual uses. Typically, software engineering principles are used for the development of software application, which include network distribution, and operating system.

Pimentel, et al. (2009) argue the growing integration of application development into web development has made software engineers to apply the principles of document engineering to assist in enhancing the software specifications. Document engineering is an aspect of computer science that focuses on the method to investigate document in any form and media. With reference to software engineering, document engineering is concerned with tools, principles and processes to create, manage, and maintain documents. Document engineering is a systematic application of technical and intellectual knowledge that assist a software developer to create tangible product. Document engineers also assist in creating a robust reusable document to design a software application at reasonable costs and at acceptable time. (Glushko, & McGrath, 2008).

In the contemporary business environment, much of the business transactions taking place through the web are through information exchange. The transactions take place through collaborations, which include customer, online catalogue and credit card authorization. Document engineering is needed to design, analyze, and implement the internet information exchange to enhance coherent information exchange. Document engineering is a pragmatic and coherent business approach to model documents that could deliver practical and effective solutions. For nearly three thousands years, business and individuals organized information in a self-contained package called document. With development of technology, there is a fundamental change in the method of encoding and exchange document. Thus, document engineering assists in delivering a pragmatic and coherent approach to model document to provide practical and effective solutions. (Pimentel, et al. 2009). With reference to software engineering solution, document engineering is compatible to design the system and usability engineering that assist in developing application that is applicable for web services and document exchanges.

On the other hand, requirement engineering covers all activities that involve documenting, discovering, and maintaining a set of requirements for computer systems. Typically, requirement engineering shows that the systematic and repeatable technique need to be consistence, complete and relevant so that computer systems could deliver the pre-determine application goals. The major problem in software engineering applications is the requirements specifications and effective management of customer requirements. The system may be delivered late and costly if a software developer does not follow the requirements. Moreover, the system may be unreliable if the requirements are wrong.

Despite the identification of the importance of requirement engineering for the application of software development, software engineers are facing challenging in meeting the system requirements because business operations are rapidly changing and the requirements for system support are also changing. Sometimes, different stakeholders may present conflicting requirements. (Sommerville, 2008).

2: Challenges

This section reviews the literatures that focus on the challenges facing software applications. Sommerville, (2008) argues that software engineers often face challenges to develop a large-scale software application. For example, the development of large-scale application such as ERP (Enterprising Resources Planning) is very complex to configure. And the user-configuration is practically difficult to implement. The author identifies some of the crisis that has been manifested within the software application in the 80s and 90s:

Projects running over the target budget,

Projects running over the time-frame,

Software developed was of low quality.

Software developed did not meet user needs.

Code is difficult to change and projects were unmanageable.

In the light of the problems, there has been a radical shift in the software development. Rather than developing software from the scratch using a conventional programming language such as Java, C++ and C. languages, developers have devised a strategy to develop commercial software using reuse strategy. The reuse is the configuration and adaptation of existing software system to meet specific organizational requirements. However, the resources limitation may hinder the application of large-scale project. More importantly, the security problem is other challenges facing software engineering application. Sometimes, sensitive data are sometimes hidden in the local machines, which may be exploited by unauthorized users.

On the other hand, Nojoumian (2007) identifies challenges that are common to the application of document engineering. The author argues that published electronic document is rich in knowledge, however, the complexity surrounding the structure of the document make users to face challenges in making maximum use of the document. While document engineering may assist in the knowledge extraction and logical structure of data conversion, however, there have been challenges with conversion, which include messy output when converting from DOC to RTF. Moreover, the extraction of HTML format from DOC or RTF tends to produce unneeded properties. Document conversion from DOC to text format deliver messy output because a user may face challenges to find tables, heading and chapters.

Pawlik, et al. (2012) presents a research on the role of documentation in software engineering among users of scientific software. The authors argue that documentation specification and requirement in scientific software has become challenging because the requirements are constantly emerging during the project lifecycle. Typically, scientists often found the document specification difficult to implement. Moreover, there is a scarcity of technical documentation for long-term and large scale project. For example, there is a little or no documentation for a project on nuclear facility. Moreover, there was no documented modification to the source code.

One of the factors leading to the unavailability of documentation is the limited time. The second challenges are the constant changing in the requirements for the document design. Generally, scientists do not produce documentation recommended by the software engineering principles, and design and the architectural documentation do not follow specific standards. Moreover, documentation related to project management and planning does not generally follow a specific standard. More importantly, specialized tools supporting maintenance and documentation production are generally rare.

Clements, et al. (2009) in their own case identify software architecture as the subsidiaries of software engineering that denotes set of structures needed to design a software system, which include software element, and relations between them. Typically, design and creation of software architecture is not enough, however, documentation of software is very critical for software architecture to apply software correctly. Documentation is the creating of the artifact that consists of electronic files, paper, snapshot of a whiteboard and Web pages. Delivering software architectural information to stakeholders often solves the configuration problems.

Thus, documentation of software architecture assists the stakeholders to use software properly. Typically, proper documentation speaks for the architect. Despite the importance of documentation in software architecture, the documentation of software architecture is afterthought. For example, a software architect often produces documentation because a contract requires it or a customer call for it. None of the reason is standard enough to produce high quality documentation.

"Good software documentation can be difficult, costly, and tiresome to produce unless the appropriate tools and methods are used. A software system is usually documented in two places -- internally in the source code and externally in user documents. In addition, software development documentation also includes requirements, design specifications, data schemes, and test plans. The consistency between the source code, the user documents, and the development documentation is difficult to maintain as the software evolves. As a result, developers often postpone the documentation from the right moment to the last moment." (Rettich, 2011, P 2-3 ) .

Forward, (2002) also contributes to the argument by pointing out that software documentation is an important aspect of software engineering, and documentation has become popular sub-domain in the software engineering application. However, current perception of documentation with reference of document engineering is outdated, incomplete and irrelevant. Generally, the role of documentation in a software engineering domain is to communicate information to audience as well as instilling knowledge about the system; however, there is still a little understanding about the importance of documentation for current and future development. Moreover, there is little knowledge on the importance of documentation within the software engineering community. Many software professionals publicly profess the importance of documentation without applying the concept of document engineering to produce high quality documentation.

Generally, challenges in documentation often emerge from the little training on documentation that software engineers receive in schools. Since documentation is basically useful for future project, many software engineers views documentation as waste of time and costs. Parna, (2008) argues that many software engineers do not view software documentation within computer science topics since it does not contain mathematics, algorithm and models; they show no interest in it.

Opportunities

Given the challenges inherent in the application of software documentation, wiki is gaining attention to address the problem of documentation. Rettich, (2011) argues that the use wiki document could assist software engineers to overcome the challenges they face with the software documentation. The use of wiki allows document specialists and software engineers to update the user guide in real time, as there are changes in the software products. Typically, Excellent Engineering Corporation (EEC) often delivers software documentation in wiki format. The delivering of documentation in wiki format is more advantageous because customer could continuing to make update to the documentation. Wiki assists end users to share and publish information. The wiki also assists programmers to link source code with the documentation. Benefits derived from wiki are that the collaborative writing is safe and its version is up-to-date. Moreover, its version prevents the document from being lost. Wiki also assist users to find the required information easily without keeping the paper copies. Despite the benefits that could be derived from wiki, many customers still require hard copy of their software documentation in specific formats.

4. Related Works

This section reviews the literatures on software documentation, and the literatures are reviewed to enhance greater understanding on maintaining and building the artifacts of communication. Moreover, the literatures are reviewed to enhance greater understanding on document engineering within the aspect of complex software specifications and precise documentation, which is a better software and documentation practice within scientific software development.

4.1: "Software Documentation - Building and Maintaining Artefacts of Communication."

Forward (2002) provides the importance of software documentation by pointing out that software documentation has been the artefact to build and maintain communication with software environment. The author points out that software documentation are an important aspect of software engineering in general and the documentation has been used in the software engineering environment to communicate information to audience as well as instilling knowledge to stakeholders. Typically, documentation assists in the future software development without hindering the present progress. However, the major requirements of good documentation are complete and up-to-date documentation. Typically, communication is achieved when information is properly conveyed to stakeholders, and the role of documentation is to convey appropriate communication about the software project. However, the software documentation must be complete and up-to-date to deliver appropriate information relevance to stakeholders. It is essential to realize that as software become more complex, there is a need for more accurate and up-to-date information about the software project.

4.2: "Document Engineering of Complex Software Specifications"

On the other hand, Nojoumian (2007) presents document engineering with reference to complex software specifications. The author defines document engineering as the tools, and principle to improve the ability of software engineers to manage, create and maintain document. The approach of the study is to use document engineering approach to re-engineer PDF-based document as well as illustrating the strategy to make more usable use of electronic document such as technical books, conference proceedings, and specifications so that end users will have a better experience with them. Nojoumian (2007) further points out document engineering are divided into two distinct phases. The first phase is to extract core knowledge and logical structure to producing results in XML (Extensible Markup Language). The XML editors allow effective data editing and easy exploration. The second phase assists in producing usable new document that facilitates navigation of data. More importantly, the author further discusses the document analysis and points out that document has several layers of structure and the extraction of the geometric structure is referred as document analysis. Typically, the mapping into a logical structure is referred to document understanding. From the structural point-of-view, a document could be in a structured, unstructured or semi-structured.

4.3-"Precise Documentation: The Key To Better Software"

Parnas (2011) reveals the prime cause of software failure is a poor documentation, which causes many errors and reduces efficiencies in all the phase of software development lifecycle. The author points out those software developers generally do not want to write documentation because it contains the collection of unstructured, wordy, and introductory description that nobody wants to write. Nevertheless, documentation is still very critical. The most important obligation of a professional engineer is to ensure that a product is fit for use for the stakeholders. This implies that engineers must understand the software requirements to protect the safety and general well-being of the general public. To fulfill the obligations, an engineer must have a document that states all the requirements generally approved by the relevant parties.

The two-variable model for the requirement document has been used in many areas of engineering and science. The variables include monitored variables and controlled variables as being revealed in Fig 1.

Fig 1: The two Variables

The product in a black box reveals p inputs and q outputs.

The output is referred as controlled variables, c1,…, cq, whose value is often determined by the system.

The inputs, is a monitored variables, m1,…, mp, whose value is generally determined externally.

MC generally denotes (m1, . . . mp, c1, . . . cq)

C (MC) and M (MC) denote c1, & #8230;, cq and m1, . . . mp respectively.

The value of a variable v could describe and denote as vt. The expression vt (T) generally represents value of vt at time T.

The value of variables, V could be described by a function of Vt and Vt (T) generally denotes a value of the Vt at time T.

The formulation allows the description of the products in such way that output values could depend on the input values. Typically, the two variable discussed above could be applied in the software components in accordance with information hiding principles. (Parnas, 2011)

4.4: "Documentation Practices in Scientific Software Development"

Pawlik et al. (2012) also provides the research paper on document with reference to scientific engineering. The author takes two perspectives: developers who design and develop software and scientists who use the software. Typically, software has become an integral part of several scientific researches.

You’re 81% through this paper. Sign up to read the full paper.

Sign Up Now — Instant Access Already a member? Log in
130,000+ paper examples AI writing assistant Citation generator Cancel anytime
References
11 sources cited in this paper
  • Blei, D. M. & Lafferty, J. D. (2006). Dynamic topic models. Proceedings of the ICML. ICML'06: 113–120.
  • Clements, P. Bachmann, F. Bass, L. et al. (2009). Documenting Software Architecture.(Second Edition). Software Engineering Institute.
  • Forward, A. (2002).Software Documentation – Building and Maintaining Artefacts of Communication. Thesis submitted In partial fulfillment of the requirements for the Master of Science degree in Computer Science. University of Ottawa.
  • Frank, F. (1999). An Associative Documentation Model. University of Berne, Institute of Computer Science and Applied Mathematics (IAM).
  • Glushko, R.J. &McGrath, T. (2008). Document Engineering Analyzing and Designing Documents for Business Informatics and Web Services. The MIT Press .
  • Nojoumian, M.(2007). Document Engineering of Complex Software Specifications. Thesis submitted In partial fulfillment of the requirements for the Master of Science degree in Computer Science. University of Ottawa.
  • Parna, D.L. (2011). Precise Documentation: The Key to Better Software. The Future of Software Engineering. 125-148.
  • Pawlik, A. Segal, J. & Petre, M. (2012). Documentation Practices in Scientific Software Development. IEEE.
  • Pimentel, M.G. Bulterman, B.D.C.A. & Soares, L.F.G.(2009). Document Engineering Approaches toward Scalable and Structured Multimedia, Web and Printable Documents. Springer-Verlag. 43(3).
  • Rettich, K. (2011). Using the Wiki to Deliver Paperless Software Documentation. IEEE.
  • Sommerville, I. (2008). Construction by Configuration: Challenges for Software Engineering Research and Practice. IEEE Xplore: 3 - 12 .
Cite This Paper
PaperDue. (2013). Explosive Impacts of Computer and Information Technology. PaperDue. https://www.paperdue.com/essay/explosive-impacts-of-computer-and-information-86497

Always verify citation format against your institution’s current style guide requirements.