Custom Search

7/23/2551

Software Process

Software ProcessThe software process is the set of actions and related results which produce a software product. These actions are mostly carried out by software developers. CASE is computer-aided software engineering tools are used to help with some process activities. There are 4 basic process activities that are applicable to all software processes.
1) Software specification: The software must define functionality of the software and constraints on its operation. 2) Software development: The software must be developed according to its specification. 3)Software validation: The software must perform all the function that customer wants. 4)Software evolution: The software must develop to meet changing customer requirements.
In software process there is no such thing as a ‘right’ or ‘wrong’ case. Different software processes divide these activities in different ways. The timing and result of the each activity varies as per software process. Using different processes different types of software product may be produced by an organization. However, it may possible that for particular application some processes are more suitable than others type of processes. If the wrong process is used, this will probably decreases the quality or the usefulness of the software product to be developed.
Because there are a number of different processes models are used, it is impossible to produce reliable figures for cost distribution across these activities. However, changing software usually takes up more than 60% of total software costs. This percentage is rising as more and more software is produced and has to be maintained. Designing software for change is vital.
Complex software processes involve a variety of activities. Processes have following attributes or characteristics:
1)Understandability : To what level is the process explicitly defined and how easy is it to understand the process definition?
2)Visibility: Does the process activity culminate in clear results so that the progress if the process is externally visible.
3)Supportability: To what level can be process activities be supported by CASE tools
4)Acceptability: Is the process acceptable to and usable by the engineers responsible for producing the software product?
5)Reliability Is the process developed in such a way that process errors are avoided or trapped before they result in product errors?
6)Robustness : Can the process carry on in spite of unexpected problems?
7)Maintainability: Can the process progress to reflect changing organizational requirements or identified process improvements?
8)Rapidity: How fast can the process of transferring a system from given specification be completed
It is impossible to optimize all process attributes simultaneously. If a rapid development process is needed then it may be necessary to decrease the process visibility, making a process visible means producing documents at regular intervals. This will slow down the process.
There are varieties of different general models or paradigms of software development:
1) The waterfall approach: This takes the above actions and represents them as separate process phase such as requirements specification, software design, implementation, testing and so on. After each stage is specified it is ‘signed off’ and development goes on to the following stage.
This is first explicit model of the software development process was derived from other engineering process. This was enthusiastically accepted by software project management. It offered a means of making the development process more visible. Because of cascade from one phase to another, this model is known as the ‘waterfall model’.
2) Evolutionary development: This approach interleaves the actions of specification, development and validation. An initial system is rapidly developed from very abstract definitions. This is then defined with customer input to produce a system which satisfies the customer’s need. The system may then be transported. Alternatively, it may be re-implemented using a more planned approach to produce a more robust and maintainable system.
Evolutionary development based on the idea of designing an initial implementation, exposing this to user comment and refining these through many versions until an adequate system has been developed. Rather than have separate specification, development and validation actions, these are carried out concurrently with rapid feedback across these activities.
3) Formal transformation: This approach is based on developing a formal mathematical system specification and transforming this specification, using mathematical methods to a program. These conversions are ‘correctness preserving’, this means that can be sure that the developed program meet its specification.
4) System assembly from reusable components: This technique supposes that parts of the system already exist. The system development process concentrates on integrating these parts rather than developing them from scratch.
The fist two of these approaches, namely waterfall approach and evolutionary development are now widely used for practical systems development. Some systems have been built using correctness-preserving transformations but this is still an experimental process.

By Ravi Kumar

PaluriPublished: 8/31/2004

Software Reuse

Software ReuseSoftware component reuse does not just indicate the reuse of application code. It is possible to reuse specification and designs. The potential gains from reusing abstract product of development process such as specifications may be grater than those from reusing code components. In most engineering disciplines the developed process is based on components reuse. Software system design usually consider that all component to be designed specially for the system being developed. There is no common base apart from libraries such as windows system libraries of reusable software components. By using widespread and systematic software reuse demands for lower software design and maintain costs along with increased quality can only be met.
Software components are not designed to one system but are tried and tested in a number of different environments. Design and implementations fault are discovered and removed so that reusable component contains few errors. It is impossible to achieve absolute reliability specification but reusable components may have an associated quality explanation. This permits users to integrate them with confidence in their systems.
Software component reuse does not just indicate the reuse of application code. It is possible to reuse specification and designs. The potential gains from reusing abstract product of development process such as specifications may be grater than those from reusing code components.
The reuse of software can be divided at a number of levels:
1)Application system reuse: It is possible to reuse the whole application system. The major problem here is to ensure that the software is portable. It should run on variety different platforms.
2)Sub-system reuse: It is possible to reuse major sub-systems of an application.
3)Module or object reuse: It is possible to reuse components of a system representing a collection of function.
4)Function reuse: It is possible to reuse software components, which implement a single function such as a mathematical function.
Application system reuse is widely used in software companies to implement their systems across a range of machines. Function reuse is widely used in standard libraries of reusable function such as graphics and mathematical libraries. Sub-system and module reuse are less usable.
Four aspects of software reuse are: 1)Software development with reuse: Software development with reuse is an approach which tries to maximize the reuse of existing software components. Benefit of this approach is that overall development costs of the software are decreased. Cost reduction is only one potential benefit of software reuse. Systematic reuse in the development offers further advantages: i)System reliability is increased: By using reused components in working systems should be more reliable than new components. These components have been tested in variety of operational systems environment and have therefore been exposed to realistic operating conditions.
ii)Overall process risk is reduced: If we use a function which is already exists, there is less uncertainty in the cost of reusing that component than in the costs of development. For project management this is important factor as it decreases uncertainty in project cost elimination. If relatively large components such as sub-stems are reused then this becomes true.
iii)Effective use can made of specialists : Application specialists doing the same work on different project environment instead these specialists can develop reusable components which encapsulate their knowledge.
iv)Organizational standards can be embodies in reusable components: We can reuse some standards such as user interface standard which can be implemented as a set of standard components.
v)Software development time can be reduced: It is necessary to bring a system to market as early as possible is more important than overall development costs. Reusing software components speeds up system production because both development and validation time should be reduced.
2)Software development for reuse: Component reuse may involve making different types of changes.
i)Name generalization: the component name should be modified so that they are neutral rather than a direct reflection of some specific application entity. ii)Operation generalization: This involves adding operations to a component or removing operation which are very specific to some application domain. iii)Exception generalization: This involves checking each component to see which exceptions it might throw and including these exceptions in the component interface.
3)Generator based reuse: An alternative way to reuse component is the generator view. In this approach reusable knowledge is confined in a program generator system which can be programmed in a domain oriented language.
High-level language compliers are most widely used ‘program generator’, where the reusable components are fragmented of object code corresponding to high level language construct. The reused elements are abstraction related to programming language statements. When a domain specific notation is used to describe the application, larger domain abstraction can be reused. Abstract approaches are: i)Application generator for business data processing: ii)Parser generator for language processing iii)Code generators in CASE tools
4)Application system reuse: A special case of software reuse is application system reuse where a whole application system is reused by a implementing it over a range of different computers and operating systems.
By Ravi Kumar
PaluriPublished: 9/5/2004

7/21/2551

Software Engineering - Reason and a Concept!

Today in Software Industry, subject of Software Engineering is most important part of any software project and it also decides project’s success.
Some decades back, when computer was just born and was completely new thing to people. Very few people could operate them and software was not given very much of emphasis. That time hardware was the most important part that decided the cost of implementation and success rate of the system developed. Very few people were known to programming. Computer programming was very much considered to be an art gifted to few rather than skill of logical thinking. This approach was full of risk and even in most of the cases, the system that was undertaken for development, never met the completion. Soon after that, some emphasis was given towards software development. This started a new era of software development. Slowly, people started giving more importance to software development. People, who wrote softwares, hardly followed any methodology, approach or discipline that would lead to a successful implementation of a bug-free and fully functional system. There hardly existed any specific documentation, system design approach and related documents etc. These things were confined to only those who developed hardware systems. Software development plans and designs were confined to only concepts in mind. Even after number of people jumped in this field, because of the lack of proper development strategies, documentations and maintenance plans, the software system that was developed was costlier than before, it took more time to develop the entire system (even sometimes, it was next to impossible to predict the completion date of the system that was under development), the lines of codes were increased to a very large number increasing the complexity of the project/software, as the complexity of the software increased it also increased the number of bugs/problems in the system. Most of the times the system that was developed, was unusable by the customer because of problems such as late delivery (generally very very very late) and also because of number of bugs, there were no plans to deal with situations where in the system was needed to be maintained, this lead to the situation called ‘Software Crisis’. Most of software projects, which were just concepts in brain but had no standard methodologies, practices to follow, experienced failure, causing loss of millions of dollars. ‘Software Crisis’ was a situation, which made people think seriously about the software development processes, and practices that could be followed to ensure a successful, cost-effective system implementation, which could be delivered on time and used by the customer. People were compelled to think about new ideas of systematic development of software systems. This approach gave birth to the most crucial part of the software development process, this part constituted the most modern and advanced thinking and even the basics of any project management, it needed the software development process be given an engineering perspective thought. This approach is called as ‘Software Engineering’. Standard definition of ‘Software Engineering’ is ‘the application of systematic, disciplined, quantifiable, approach to the development, operation and maintenance of software i.e. the application of engineering to software.’ The Software Engineering subject uses a systematic approach towards developing any software project. It shows how systematically and cost-effectively a software project can be handled and successfully completed assuring higher success rates. Software Engineering includes planning and developing strategies, defining time-lines and following guidelines in order to ensure the successful completion of particular phases, following predefined Software Development Life-Cycles, using documentation plans for follow-ups etc. in order to complete various phases of software development process and providing better support for the system developed. Software Engineering takes an all-round approach to find out the customer’s needs and even it asks customers about their opinions hence proceeding towards development of a desired product. Various methodologies/practices such as ‘Waterfall Model’, ‘Spiral Model’ etc. are developed under Software Engineering which provides guidelines to follow during software development ensuring on time completion of the project. These approaches help in dividing the software development process into small tasks/phases such as requirement gathering and analysis, system design phase, coding phase etc. that makes it very much easy to manage the project. These methods/approaches also help in understanding the problems faced (which occur during the system development process and even after the deployment of the system at customer’s site) and strategies to be followed to take care of all the problems and providing a strong support for the system developed (for example: the problems with one phase are resolved in the next phase, and after deployment of the product, problems related to the system such as queries, bug that was not yet detected etc. which is called support and maintenance of the system. These all strategies are decided while following the various methodologies). Today, almost 100% software development projects use Software Engineering concepts and follow the standard guidelines; this ensures a safe pathway for these projects. In future also, all the projects will surely follow the Software Engineering concepts (may be with improved strategies and methodologies.)

By Nilesh Parekh
Published: 1/11/2005
http://www.buzzle.com/editorials/1-11-2005-63996.asp

***แจกฟรี 90 โปรแกรมครับ***

http://w13.easy-share.com/4825251.html
4.โปรแกรมแอบดู pass word Msn
http://w14.easy-share.com/5135541.html
5.โปรแกรม ดู UBC ฟรี อาจดูไม่ได้บางช่องนะครับ
http://w14.easy-share.com/4808881.html
6.เพิ่มความเร็วให้ แรม Clean.MemXP.v8.0
http://w13.easy-share.com/4808621.html
9 โทรฟรี Free call .
http://w14.easy-share.com/4806351.html
10 ทำDesktop เป็นกระจกใส (ไม่กินแรมครับ สวยดี).
http://w14.easy-share.com/4806051.html
11.โปรแกรมเช็คเครือข่ายเบอร์มือถือ
12.โปรยิงเครื่อง ให้ขึ้นจอฟ้า + Angry IP Scanner
13.speeder.exe โปรมแกรมเร่งสปีดคอมพิวเตอร์และ internet
14.โปรแกรมดูดวีดีโอจาก Youtube
http://w13.easy-share.com/5135511.html
15.ThaiTranslator แปลไทยเป็นอังกฤษ (ดีมากครับ)
16.Dictionary 7 ภาษา มีภาษาอะไรบ้างก็ลองโหลดดูครับ
http://w15.easy-share.com/8661961.html
23.โปรแกรมทำให้ลำโพงเสียงใส
24 Screen Sever (ภาพคราฟสวยมากครับ)
25.Tried.Tool.Antivirus.Protection.v3.(โปรแกรม Antivirus มาใหม่ที่นิยมขนาดนี้ )
26.โปรแกรมป้องกันการ Autorun ของ แฮนดีไดร์
27.Error Repair 3.55 โปรแกรมตรวจสอบซ่อมส่วนที่ Error ของ window[Full]
28.โปรแกรม CPU-Z Version 1.28.1 สำหรับตรวจเช็ครายละเอียดของ CPU และ Mainboard
29.Spinrite v.6 Full แก้ Bad Sector ให้ HDD. วิธีใช้โปรแกรม
30.โปรแกรมสำหรับดูยี่ห้อและรุ่นของ Mainboard รวมถึงรายละเอียดต่างๆทั้งระบบ
31.สร้างแผ่น BOOT DOS Version 6.22 พร้อมสนับสนุน CD-ROM ด้วย
32.โปรแกรมตรวจสอบประสิทธิภาพและแบดบนตัวฮาร์ดดิส
33.โปรแกรมทำให้หน้าจอมี4ด้าน โปรแกรม YOD3D สลับหน้าจอแอบเจ้านาย
34.disk defrag โปรแกรม defrag HDD อย่างเร็ว
35.โปรแกรม แก้ไข Windows Genuine
36.ztv ดูทีวี ผ่านระบบ internet
37.ดูแลรักษา Win XP ด้วย Advanced WindowsCare v.2Professional
38.โปรแกรม Lock Foder ใส่รหัสลับเพื่อให้เปิดได้ PCsecurity 6.4
39.Regcure v.1.4 ซ่อมแซม windows ปรับแต่ง ค่า Reg ให้เร็วขึ้น
40.TuneUp Utilities 2008 v7.0.7991 โปรแกรมที่ ปรับแต่ง winxp ที่ดีที่สุด
41.Aimp โปรแกรมฟังเพลงที่ดีกว่า winamp แถม ไฟลย์เล็กมาก ภาษาไทยด้วยครับ
42.youtube_vc.exe โปรแกรมโหลด คลิป จาก youtube มาไว้เครื่องเรา
43.โปรแกรมแปลไทยเป็นอังกฤษดีมากๆๆครับ รับรอง
44.AutoMZ Ultimate Tweaker 4.0 ปรับความเร็วของ winXP แบบอัตโนมัติ
45.Mz Ram Booster v2.0 (Windows 2K/XP/2K3/Vista) เพิ่มความเร็วให้แรม
46.โปรแกรม ตอบรับเพื่อนทาง HI5 อัตโนมัติพร้อมโพสพร้อมกันได้ หลายคนต่อครั้ง
47.โปรแกรมกู้ข้อมูล กู้ได้เกือบ 100%
48.โปรแกรมแปลไทยเป็นอังกฤษ ภาค 2 ต่อจาก ที่ให้ดาวด์โหลด แปลอังกฤษเป็นไทยนะครับ มันอยู่ในเคลือเดียวกันคร๊าบ ถ้ามีทั้ง 2 โปรนี้ใช้งานสบายมากเลย
49.RegistryCleanExpert4.53+crack.rar ปรับแต่ง ค่า Reg ให้เร็วขึ้น
50.U_ErrorDoctor2008v1.5.rar ซ่อมแซมอันโนมัตอีกตัวที่นะแนะ
51.โปรแกรม แอนตี้ไวรัส ที่ดีที่สุด NOD32+Update (ตัวแท้)
52.Msn 8.1 ภาษาไทย (ติดตั้งง่าย)
53.โชว์เพลงที่เล่นใน Msn
54.Skin Vista Msn 8.5. แต่ง Msn .ใ้ห้เป็นหน่าตา Vista สวยครับ
55.โปรแกรมค้นหาสัญญาณ Wireless. (เรด้า)
56.โปรแกรมเพิ่มความเร็ว DSL
57.โปรแกรม กู้ภาพจากการ์ดทุกชนิดได้ 1000000% ใช้เวลา 1นาที

หมวดมือถือแปลงไฟลย์
58.ไฟล์AMRแปลงเป็นwave
59.โปรแกรม ลดขนาดไฟล์เพลง MP3
60.การทำหนังให้เป็นนามสกุล Avi ไว้ดูในมือถือ.
61.ทำหนังให้เป็นนามสกุล 3gp , mp4 ไว้ดูในมือถือ.
62.หากดูไฟล์ไม่ได้ ลงตัวนี้ดูได้ทุกหนัง.
63.แปลงหนังx-3gp-video- converter.
64.Format mmc แก้อาการมือถือหาการ์ด MMC ไม่เจอ.
65.Gold Wave ตัด MP3.
66.แต่งทีมด้วยTheme Editor Full for 6600
67.ทำไฟล์นามสกุล sis _MakeSIS1[1].0_เวอร์ชั่นไทย
68.mp3_to_midi
69.โปรแกรมเล่นเพลง MP3 + crak UltraMP.zip
----------------------------------------------------------------------------------------------------------------
70.Shutdown..เครื่องเร็วโคตรไม่ถึง 3วินาที
71.โปรแกรมซ่อนและป้องกัน HDD.
72.bitcomet_โปรแกรมโหลด บิตที่เร็วที่สุด ใช้งานง่าย(ภาษาไทย)
73.โปรแกรมตัดต่อหนัง vcdcut -v.413full.+crack
74.โปรแกรมจัดเก็บเบอร์โทรศัพท์ เรียกดูง่าย phonebook.
75.โปรแกรมดูหนังใหม่ ฟรี ดูผ่าน internet ฉายหนังใหม่ๆๆ
76.โปรแกรม Zoom ภาพไม่แตก
77.ปลด Lock DVD มาสเตอร์
78.Theme Windows 2008 สำหรับคนที่เบื่อ windows เก่าๆๆ (มี Theme vista)
79.Program ทำภาพให้สวยขึ้นกว่าเดิมในไม่กี่คลิ้ก (ปรับแต่งรูปภาพอันโนมัติ)
80.โปรแกรมกำจัด สปายแวร์ ที่ดีที่สุด XoftSpySE+pach
81.Shutdown..เครื่องเร็วโคตรไม่ถึง 3วินาที
82.โปรแกรมฝึกพิมพ์ดีด
83.ใหม่ล่าสุด!! สุดยอดโปรแกรมคุมเครื่อง ร้านเน็ต โรงเรียน NetSupport School 8.51
84.Driver Genius Professional Edition 2007 v7.0 โปรแกรม Bacckup Driver ลง Xp ใหม่ก็ดึงมาใช้ได้เลย
85.Best Windowblinds desktop theme collection
86.แจกโปรแกรมท่องเน็ต Opera 9.24 ครับ
85.แจกโปรแกรมท่องเน็ต Firefox Setup 2.0.0.11.
86.CFOSSPEED.V4.05 FULL เร่งเน็ตเร็วมาก
87.Hide IP Platinum 2.82 โปรแกรมซ่อน IP
88.Trojan Guarder Gold 7.4. โปรแกรมกำจัดโทจัน ที่ดีที่สุด
89.SUPERAntiSpywareProfessionalv3.9.0.1008. โปรแกรม Spyware
90.Ad-Aware 2007 AntiSpyware.